重要提示
您正在查看 NeMo 2.0 文档。此版本引入了 API 的重大更改和一个新的库 NeMo Run。我们目前正在将 NeMo 1.0 中的所有功能移植到 2.0。有关先前版本或 2.0 中尚不可用的功能的文档,请参阅 NeMo 24.07 文档。
使用 C++ 后端部署到生产环境#
警告
TN/ITN 已从 NVIDIA/NeMo 存储库过渡到独立的 NVIDIA/NeMo-text-processing 存储库。所有更新和讨论/问题都应转到新的存储库。
NeMo-text-processing 提供了部署 TN 和 ITN 以用于生产环境的工具 [TEXTPROCESSING-DEPLOYMENT2]。它使用 Sparrowhawk [TEXTPROCESSING-DEPLOYMENT1] – Google 的开源 C++ 框架。使用 NeMo-text-processing 编写的语法可以导出到 OpenFST 存档文件 (FAR) 中,并放入 Sparrowhawk。
要求#
快速开始#
如何运行示例
# export English TN grammars and return prompt inside docker container
cd NeMo-text-processing/tools/text_processing_deployment
bash export_grammars.sh --GRAMMARS=tn_grammars --LANGUAGE=en --INPUT_CASE=cased
# export English ITN grammars and return prompt inside docker container
cd NeMo-text-processing/tools/text_processing_deployment
bash export_grammars.sh --GRAMMARS=itn_grammars --LANGUAGE=en
参数:#
GRAMMARS
-tn_grammars
或itn_grammars
,用于导出 TN 或 ITN 语法。LANGUAGE
- en 代表英语。单击此处查看完整语言列表。INPUT_CASE
-cased
或lower_cased
(ITN 在这两者之间没有区别,仅用于 TN)。MODE
- 默认情况下为export
,它在 Docker 内部返回提示符。如果--MODE=test
在容器内部运行 NeMo-text-processing pytests。OVERWRITE_CACHE
- 是否重新导出语法或从缓存加载。默认情况下为True
。FORCE_REBUILD
- 如果依赖项更新,是否重建 Docker 镜像。默认情况下为False
。
详细流程#
export_grammars.sh 按顺序运行以下步骤
转到脚本文件夹
cd NeMo-text-processing/tools/text_processing_deployment
用 Python 编写的语法导出到 OpenFST 存档文件 (FAR)。具体来说,来自 nemo_text_processing 的语法 ClassifyFst 和 VerbalizeFst 被导出并分别保存到 ./LANGUAGE/classify/tokenize_and_classify.far 和 ./LANGUAGE/verbalize/verbalize.far。
python pynini_export.py <--output_dir .> <--grammars GRAMMARS> <--input_case INPUT_CASE> <--language LANGUAGE>
警告
TN 和 ITN 语法默认保存到同一文件中。
Docker 镜像使用依赖项构建,包括 Thrax 和 Sparrowhawk。
bash docker/build.sh
通过在 Docker 内部挂载语法目录 LANGUAGE/classify/ 和 LANGUAGE/verbalize/ 将语法插入到生产后端。返回 Docker 提示符。
# launch container with the exported grammars
bash docker/launch.sh
在 Docker 容器中运行系统。
echo "ITN result: two dollars fifty. TN result: $2.50" | ../../src/bin/normalizer_main --config=sparrowhawk_configuration.ascii_proto
这将返回 “ITN 结果:$2.50。TN 结果:two dollars fifty cents”
有关更多详细信息,请参阅 WFST 资源。
参考文献#
Alexander Gutkin、Linne Ha、Martin Jansche、Knot Pipatsrisawat 和 Richard Sproat。《低资源语言的 TTS:孟加拉语合成器》。载于第 10 届语言资源和评估会议。2016 年。
Yang Zhang、Evelina Bakhturina、Kyle Gorman 和 Boris Ginsburg。《NeMo 逆文本规范化:从开发到生产》。2021 年。arXiv:2104.05055。