翻译概述
目录
翻译概述#
NVIDIA Riva 翻译是一个基于 神经网络 的框架。Riva 翻译在语言对之间翻译文本,即将文本从一种语言翻译成另一种语言。例如,我们希望机器将一种语言(我们称之为源语言)的文本翻译成另一种语言(我们称之为目标语言)的相应文本。这些模型使用 NVIDIA NeMo 进行训练;NeMo 是一个用于构建新的最先进的对话式 AI 模型的工具包。NeMo 具有用于自动语音识别 (ASR)、自然语言处理 (NLP)、神经机器翻译 (NMT) 和文本到语音 (TTS) 模型的独立集合。
有关翻译模型架构和训练的更多信息,请参阅 NeMo 机器翻译文档。
支持的语言对#
NVIDIA Riva 翻译服务支持以下语言对的模型
1. English (en) to Simplified Chinese (zh-CN)
2. Simplified Chinese (zh-CN) to English (en)
3. English (en) to Traditional Chinese (zh-TW)
4. Traditional Chinese (zh-TW) to English (en)
5. English (en) to Russian (ru)
6. Russian (ru) to English (en)
7. English (en) to German (de)
8. German (de) to English (en)
9. English (en) to European Spanish (es-ES)
10. European Spanish (es-ES) to English (en)
11. English (en) to LATAM Spanish (es-US)
12. LATAM Spanish (es-US) to English (en)
13. English (en) to French (fr)
14. French (fr) to English (en)
15. English (en) to Danish (da)
16. Danish (da) to English (en)
17. English (en) to Greek (el)
18. Greek (el) to English (en)
19. English (en) to Finnish (fi)
20. Finnish (fi) to English (en)
21. English (en) to Hungarian (hu)
22. Hungarian (hu) to English (en)
23. English (en) to Italian (it)
24. Italian (it) to English (en)
25. English (en) to Lithuanian (lt)
26. Lithuanian (lt) to English (en)
27. English (en) to Latvian (lv)
28. Latvian (lv) to English (en)
29. English (en) to Dutch (nl)
30. Dutch (nl) to English (en)
31. English (en) to Norwegian (no)
32. Norwegian (no) to English (en)
33. English (en) to Polish (pl)
34. Polish (pl) to English (en)
35. English (en) to European Portuguese (pt-PT)
36. European Portuguese (pt-PT) to English (en)
37. English (en) to Brazilian Portuguese (pt-BR)
38. Brazilian Portuguese (pt-BR) to English (en)
39. English (en) to Romanian (ro)
40. Romanian (ro) to English (en)
41. English (en) to Slovak (sk)
42. Slovak (sk) to English (en)
43. English (en) to Swedish (sv)
44. Swedish (sv) to English (en)
45. English (en) to Japanese (ja)
46. Japanese (ja) to English (en)
47. English (en) to Hindi (hi)
48. Hindi (hi) to English (en)
49. English (en) to Korean (ko)
50. Korean (ko) to English (en)
51. English (en) to Estonian (et)
52. Estonian (et) to English (en)
53. English (en) to Slovenian (sl)
54. Slovenian (sl) to English (en)
55. English (en) to Bulgarian (bg)
56. Bulgarian (bg) to English (en)
57. English (en) to Ukrainian (uk)
58. Ukrainian (uk) to English (en)
59. English (en) to Croatian (hr)
60. Croatian (hr) to English (en)
61. English (en) to Arabic (ar)
62. Arabic (ar) to English (en)
63. English (en) to Vietnamese (vi)
64. Vietnamese (vi) to English (en)
65. English (en) to Turkish (tr)
66. Turkish (tr) to English (en)
67. English (en) to Indonesian (id)
68. Indonesian (id) to English (en)
69. English (en) to Czech (cs)
70. Czech (cs) to English
71. English (en) to Thai (th)
72. Thai (th) to English
翻译功能#
Riva 翻译目前提供一个 API,用于使用在 NeMo 机器翻译 中训练的模型在语言对之间进行翻译。支持仅限于 Megatron Multilingual 模型架构。
Megatron Multilingual 模型支持多种语言之间的翻译
en_any
:从英语翻译成任何支持的语言。any_en
:从任何支持的语言翻译成英语。any_any
:在任何支持的语言之间进行翻译。
除了英语外,Megatron 模型还支持其他 36 种语言:丹麦语、德语、希腊语、欧洲西班牙语、拉丁美洲西班牙语、芬兰语、法语、匈牙利语、意大利语、立陶宛语、拉脱维亚语、荷兰语、挪威语、波兰语、欧洲葡萄牙语、巴西葡萄牙语、罗马尼亚语、俄语、斯洛伐克语、瑞典语、简体中文、繁体中文、日语、印地语、韩语、爱沙尼亚语、斯洛文尼亚语、保加利亚语、乌克兰语、克罗地亚语、阿拉伯语、越南语、土耳其语、印度尼西亚语、捷克语和泰语。
Riva 翻译使您能够将多个句子 batch
在一起,以提供更快的翻译体验。使用翻译客户端,您可以在单个请求中 batch
最多 8 个句子进行翻译。batch
大小默认为 8,可以使用客户端中的 batch_size
参数进行调整。
翻译排除#
最新的更新使您能够执行翻译排除。这可以使用容器功能或模型本身来完成。对于与模型更新一起使用,请将单词/短语括在 “Copy” HTML 标签 (<cp></cp>
) 中。对于容器支持,请将应保持不变的单词或短语括在 “Do not translate” HTML 标签 (<dnt></dnt>
) 中,文本将按原样保留在其源语言中。
示例输入:“<dnt>
NVIDIA Riva</dnt>
<cp>
Speech-to-Speech Translation (S2S)</cp>
服务在语言对之间翻译音频。”
语音到语音翻译 (S2S)#
NVIDIA Riva 语音到语音翻译 (S2S) 服务在语言对之间翻译音频,即将音频从一种源语言翻译成另一种目标语言。S2S 以音频流或音频缓冲区作为输入,并返回生成的音频文件。Riva S2S 服务在内部由 Riva ASR、NMT 和 TTS 管道组成。Riva S2S 服务支持流式模式。双语和多语言模型使用 NVIDIA NeMo 进行训练;NeMo 是一个用于构建新的最先进的对话式 AI 模型的工具包。NeMo 具有用于自动语音识别 (ASR)、自然机器翻译 (NMT) 和文本到语音 (TTS) 模型的独立集合。
语音到文本翻译 (S2T)#
NVIDIA Riva 语音到文本翻译 (S2T) 服务在给定的语言对之间将音频转录为文本,即将音频从一种源语言转录为目标语言。S2T 以音频流或音频缓冲区作为输入,并返回转录文本。Riva S2T 服务在内部由 Riva ASR 和 NMT 管道组成,并支持流式模式。双语和多语言模型使用 NVIDIA NeMo 进行训练;NeMo 是一个用于构建新的最先进的对话式 AI 模型的工具包。NeMo 具有用于自动语音识别 (ASR) 和自然机器翻译 (NMT) 模型的独立集合。
模型部署#
与所有 Riva 模型一样,Riva S2S 和 S2T 需要以下步骤
从 NeMo 部分中概述的
.nemo
文件为每个模型创建.riva
文件。使用
riva-build
为每个 Riva Speech AI Skill 创建.rmir
文件。使用
riva-deploy
创建模型目录。使用
riva_server
部署模型目录。
多模型部署#
Riva 服务器支持同时部署多个模型;最多可达 GPU 内存的限制。因此,单个服务器进程可以托管用于各种语言对的模型,如上所述。
对于文本翻译客户端,可以通过使用客户端请求的 --model_name
参数来提供模型名称。此值必须与用于创建模型的 riva-build
参数的值匹配。如果未提供模型名称,它将从提供的源语言和目标语言对自动派生。
要获取服务器上可用的模型和语言对,请使用 ListSupportedLanguagePairs
API。
当从客户端应用程序接收请求时,Riva 服务器根据客户端请求的 protobuf 对象 StreamingTranslateSpeechToSpeechConfig
(对于 S2S)和 StreamingTranslateSpeechToTextConfig
(对于 S2T)选择要使用的已部署模型。在可能有多个模型能够满足客户端请求的情况下,将随机选择一个模型。