Index
https://k2-fsa.github.io/sherpa/onnx/tts/all/Chinese/matcha-icefall-zh-baker.html
eSpeak NG
Flite
Matcha-icefall-zh-baker:中文专用模型,合成速度快,语音自然度良好 Vits-melo-tts-zh_en:中英双语支持,合成速度中等,支持跨语言混合合成 Kokoro-multi-lang-v1.1:多语言模型(支持日、韩、英等),合成速度较慢但音质最佳
python
pip install sounddevice sherpa_onnx
asr
Real-time speech recognition from a microphone
python ./speech-recognition-from-microphone-with-endpoint-detection.py --tokens=./sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20/tokens.txt --encoder=./sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20/encoder-epoch-99-avg-1.onnx --decoder=./sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20/decoder-epoch-99-avg-1.onnx --joiner=./sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20/joiner-epoch-99-avg-1.onnx
拼音词组匹配替换
```
conda install -c conda-forge pynini
```
-
下载lexicon.txt https://github.com/k2-fsa/sherpa-onnx/releases/tag/hr-files
-
生成replace.fst
import pynini
from pynini import cdrewrite
from pynini.lib import byte, utf8
sigma = utf8.VALID_UTF8_CHAR.star
rule1 = pynini.cross("xiao4yuan2wei4shi4", "校园卫士")
# 针对前鼻音和后鼻音不分的情况
#
# 注意:可以指定多个规则,都替换成同一个词组
rule2 = pynini.cross("xuan2jie4xing1pian4", "玄戒芯片")
rule3 = pynini.cross("fu2nan2ren2", "湖南人")
rule4 = pynini.cross("gong1tou2an1zhuang1", "弓头安装")
rule5 = pynini.cross("ji1zai3chuan2gan3qi4", "机载传感器")
# 可以指定多个规则,覆盖可能的发音
rule6 = pynini.cross("ji1zai4chuan2gan3qi4", "机载传感器")
# 本例子只有6条规则。你可以添加任意多条规则。
rule = (rule1 | rule2 | rule3 | rule4 | rule5 | rule6).optimize()
rule = cdrewrite(rule, "", "", sigma)
rule.write("replace.fst")
python ./speech-recognition-from-microphone-with-endpoint-detection.py --tokens=./sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20/tokens.txt --encoder=./sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20/encoder-epoch-99-avg-1.onnx --decoder=./sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20/decoder-epoch-99-avg-1.onnx --joiner=./sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20/joiner-epoch-99-avg-1.onnx --hr-lexicon=./lexicon.txt --hr-rule-fsts=./replace.fst