ccp*_*zza 5 speech-recognition machine-learning speech-to-text machine-translation openai-whisper
我注意到,使用 openai Whisper 语音转文本库转录多种语言的语音有时可以准确识别另一种语言的插入内容,并提供预期的输出,例如:\xe5\x85\xab\xe5\x8d\x81\xe5\xa4\x9a\xe4\xb8\xaa\xe4\xba\xba is the same as \xe5\x85\xab\xe5\x8d\x81\xe5\x87\xa0\xe4\xb8\xaa\xe4\xba\xba. So \xe5\xa4\x9a and \xe5\x87\xa0 are interchangeable and they can both mean several。
然而,不同通道上的相同音频输入(使用相同的模型或更小/更大的模型)会间歇性地导致整个句子被翻译而不是转录的故障。即,片段将被翻译成音频中出现的第一语言或第二语言。对于上面的示例输入,要么整个句子是英语(中文部分翻译成英语),要么整个句子是中文(英语部分翻译成中文)。重要提示:在这两种情况下都没有指定输入语言,也没有传递任务类型(这意味着默认--task transcribe)。
耳语的文档提到翻译为英语作为唯一可用的目标语言(使用命令行版本中的选项--task translate),但没有提到翻译为其他目标语言。然而,上述行为表明这些模型也能够翻译成其他语言。
问题是是否有一种已知的方法来配置模型以进行文本到文本的翻译?或者该行为只是某种故障,不能被“利用”或在较低级别上配置,从而允许使用模型仅在任何受支持的语言之间进行文本翻译?
\n根据耳语问题跟踪器中的评论,这可能是一个可能的答案:
从论文中来看,所使用的数据集没有使用任何英语音频来润色文本样本。通过使用不同的模型将口语与文本语言进行匹配来清理数据集。如果不匹配,则样本被排除。部分训练数据存在例外情况,用于将任何口语与英语文本 (X->en) 翻译相匹配。
不幸的是,没有直接的方法,模型没有接受过训练。对于您的用例,这可以转录为英语文本,但必须有一些外部系统可以将英语文本翻译为波兰语文本。
该--language参数在 cli 中定义为:
--language
language spoken in the audio, specify None
to perform language detection (default: None)
Run Code Online (Sandbox Code Playgroud)
然而,尽管上面有帮助文本,但这可能会产生潜在有用的未记录的副作用。
观察到的未记录的故障是,如果您设置源语言,例如es,但音频输入包含英语,那么输入的英语部分将被翻译为西班牙语。音频输入中非英语的部分将被转录, 但根据语言的不同,它可能并不总是有效,或者可能会生成垃圾翻译。
因此,“利用”是模型可用于解析英语音频,然后将其翻译为支持的语言。
上述行为发生在常规转录模式(默认模式,即--task transcribe)下,并且可以通过 python 中的原始 Whisper 实现以及 CPU 优化的 C++ 端口Whisper.cpp重现,后者使用相同的模型,但显然使用不同的参数。
非英语翻译的质量取决于语言,并且似乎通常比使用专用开源模型(例如,等)获得的质量Helsinki-NLP/opus-mt-es-en要低facebook/m2m100_1.2B。fairseq
| 归档时间: |
|
| 查看次数: |
3387 次 |
| 最近记录: |