机器翻译一直是AI研究的重点,毕竟世界上有那么多语言,有无数个单词。 如何连接人类的写作和语言一直是研究者的重点。 过去,机器翻译一直使用类似的查找表格的方式,很多年前,机器翻译是直接将另一种语言的单词与另一种语言的单词对应起来,机器翻译的单词是机器翻译一目了然的。
随着谷歌发布变形金刚模型,机器翻译的力量得到了极大的提升,即使是现在,机器翻译的例子也超过了人类的水平。
Transformer 模型刚发布时,是为机器翻译的小应用而构建的模型,随着注意力机制的普及,Transformer 模型被开发到目标检测和目标分类等任务,Transformer 模型被开发到多模态任务。 随着ChatGPT的发布,变形金刚模型被推到了风口浪尖。
尽管机器翻译是一项利基任务,但对于文本和语音的多模态翻译任务,很少有模型可以涵盖如此多的语音和文本。 SeamlessM4T – 大规模多语言和多模态机器翻译 – 支持多达 100 种语言的语音转语音、语音转文本、文本转语音、文本转文本和自动语音识别的单一模型。 是一种基础的多语言和多任务模型,可无缝翻译和转录语音和文本。
SeamlessM4T 支持:
自动语音识别,近 100 种语言的语音转文本翻译,近 100 种输入输出语言的语音转文本翻译,支持近 100 种输入语言和 35 种(+英语)输出语言,近 100 种语言的文本到文本翻译,近 100 种输入语言和 35 种(+英语)输出语言的文本到语音翻译
对于SeamlessM4T模型,使用多任务Unity模型架构,能够直接生成翻译后的文本和语音。 这个新架构还支持自动语音识别、文本转文本、文本转语音、语音转文本和语音转语音翻译,这些已经是 Unityy 模型的一部分。
多任务 Unity 模型由三个主要组件组成。
文本和语音编码器的任务是识别近 100 种语言的语音输入。 文本解码器将该语音转换为近 100 种文本语言。 使用文本到音频模型将其解码为 36 种语言的语音。
用于 SeamlessM4T 型号的自监督语音编码器 W2V-BERT 20 是 W2V-BERT 的改进版本,它通过分析数百万小时的多语言语音来学习语音的结构和含义。
SeamlessM4T 模型具有基于 NLLB 模型的文本编码器。 它经过训练,可以理解近 100 种语言的文本并相应地生成翻译文本。
像 SeamlessM4T 这样的数据驱动模型通常受益于大量高质量的端到端数据,即语音转文本和语音转语音数据。 仅依靠人工转录和翻译的语音无法应对将语音翻译成 100 种语言的艰巨任务。 Meta AI 为 200 种语言构建了一个新的大规模多语言和模态文本嵌入空间,称为 Sonar,在多语言相似性搜索方面,其性能明显优于 Laser3 或 LabSe 等现有方法。
SeamlessM4T 在近 100 种语言中实现了最先进的结果,并实现了自动语音识别、语音转文本、语音转语音、文本转语音和文本转语音方面的多任务处理。SeamlessM4T的官方**有100多页,作者有几十位,可想而知SeamlessM4T模型的复杂程度。 不过,Meta AI 还是开源了 SeamlessM4T 模型,我们可以直接在 GitHub 上查看 SeamlessM4T 模型的使用情况。
无缝M4T型号,官方公布了2个型号文件。 一个有12亿个参数的中型模型,一个有23亿个参数的大模型,每个模型都包含以下多个任务,我们可以直接使用github的官方**来实现。
speech-to-speech translation (s2st)speech-to-text translation (s2tt)text-to-speech translation (t2st)text-to-text translation (t2tt)automatic speech recognition (asr)pip install .s2st task:m4t_predict s2st --output_path t2tt task:m4t_predict t2tt --src_lang s2tt:m4t_predict s2tt t2st:m4t_predict t2st --src_lang --output_path asr:m4t_predict asr
SeamlessM4T型号需要16kHz的音频文件,官方还提供了**来格式化输入语音。
import torchaudioresample_rate = 16000w**eform, sample_rate = torchaudio.load()resampler = torchaudio.transforms.resample(sample_rate, resample_rate, dtype=w**eform.dtype)resampled_w**eform = resampler(w**eform)torchaudio.s**e(, resampled_w**eform, resample_rate)
格式化语音后,我们可以使用以下**来使用 SeamlessM4T 模型。
import torchimport torchaudiofrom seamless_communication.models.inference import translatortranslator = translator("seamlessm4t_large", "vocoder_36langs", torch.device("cuda:0"), torch.float16)# s2sttranslated_text, w**,sr = translator.predict(, "s2st", )# t2sttranslated_text, w**,sr = translator.predict(, "t2st", ,src_lang=)w**,sr = translator.synthesize_speech(, torchaudio.s**e( ,w**[0].cpu(),sample_rate=sr,)# s2tttranslated_text, _= translator.predict(, "s2tt", )# asrtranscribed_text, _= translator.predict(, "asr", )# t2tttranslated_text, _= translator.predict(, "t2tt", ,src_lang=)
当然,官方的试玩地址已经公布,我们可以直接在官方**上体验到SeamlessM4T。
上面的Hugging Face,SeamlessM4T模型已经可以使用了,在Hugging Face体验环节,我们也可以体验到SeamlessM4T模型,我个人觉得Hugging Face的界面清晰易懂,大家更容易上手。
我们可以根据界面提示的内容来选择我们需要的任务,无论是声音识别、语音转文本、语音转语音、文本转语音和文本转语音、机器翻译等,我们都可以尝试一下。
拥抱脸体验链接官方体验链接开源链接。