ASR(Automatic Speech Recognition)為語音辨識模型,語言可以選擇,不管是輸入及輸出都可以選擇語言,所涵蓋的語言代號請參考連結:SeamlessM4T語言別代號。本篇使用SeamlessM4T的ASR功能,看看使用流程是否容易上手,以及翻譯結果的準確性。
安裝SeamlessM4T請參考文章安裝SeamlessM4T
先導入模型,本次推出的SeamlessM4T有兩種型號:seamlessM4T_large與seamlessM4T_large。以large版本為例,執行以下程式碼後即已備好模型:
import torch
from seamless_communication.models.inference import Translator
**translator = Translator(
"seamlessM4T_large",
"vocoder_36langs",
torch.device("cuda:0"),
torch.float16,
)
此步驟的用意為在GPU上初始化一個轉譯器,選用模型"seamlessM4T_large",以及聲碼器"vocoder_36langs",官方建議選擇半精度浮點數(float16)可能是因為要節省記憶體,但可能因此影響翻譯精準度。
將此文本丟入translator中,設定模型為”asr”,來源語言為英文,目標語言為中文(官方公布的代碼為cmn),我使用的音檔為英文語音 ”We used to be friendly with some people who worked at the Swedish Embassy.”播放
# This is equivalent to S2TT with `<tgt_lang>=<src_lang>`.
transcribed_text, _, _ = translator.predict(
"./input.wav",
"asr",
src_lang="eng",
tgt_lang="cmn")
print(transcribed_text) #我们曾经和一些在瑞典大使馆工作的人友好 ⁇
由英語語音轉譯為中文文本,結果也莫名其妙多了兩個問號,且語句不是很通順。
利用SeamlessM4T的ASR功能(Automatic Speech Recognition),將輸入語音匯入預備好的轉譯器(Translator),選擇任務asr,設定目標語言即可做轉譯。本篇使用英語語音轉中文文本,翻譯內容不是很通順,且筆者覺得它的功能跟S2TT有重疊到,這個功能感覺上會被S2TT取代。