此存储库是将NEMO的所有三个主要组成部分组合到一个可以轻松使用的无需深入研究工具包本身而可以轻松使用的Web界面中的尝试。
Nemo代表“神经模块”,它是一种工具包,创建了Bey Nvidia,其中包含用于自动语音识别(ASR),自然语言处理(NLP)和文本合成(TTS)的预先构建的模块。 Nemo包括:
Nemo's旨在为框架 - 敏捷式,但目前仅支持Pytorch。此外,Nemo为最新的NVIDIA GPU提供了内置的支持,并为分布式培训和混合精度提供了支持。
要开始使用此存储库,您需要安装:
pip install -r requirements.txt
如果您的机器支持CUDA,则需要安装NVIDIA APEX,以在培训/评估模型上进行最佳性能。
git clone https://github.com/NVIDIA/apex
cd apex
pip install -v --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./
如果使用ASR模型时要使用语言模型,则需要安装Baidu的CTC解码器:
./scripts/install_decoders.sh
在这里,我将解释如何在Nemo Collections中使用自动语音识别。您可以通过遵循此步骤轻松执行此操作:
从此处下载预训练的模型。如果您已经训练自己的模型,则可以跳过此步骤。我本人使用了Quartznet15x5 jasper型号。您可以从这里下载它。
在asr_model目录中找到您的ASR模型。或将其找到所需的任何位置,只需编辑yaml变量asr: model_dir conf.yaml文件。
通过您的声音记录音频。或者,您可以下载音频示例,我已经使用过。
运行以下代码以获取波浪转录:
>>> from asr import ASR
>>> asr_model = ASR()
2019-12-31 10:59:38,248 - INFO - PADDING: 16
2019-12-31 10:59:38,249 - INFO - STFT using conv
2019-12-31 10:59:39,491 - INFO - ================================
2019-12-31 10:59:39,495 - INFO - Number of parameters in encoder: 18894656
2019-12-31 10:59:39,495 - INFO - Number of parameters in decoder: 29725
2019-12-31 10:59:39,498 - INFO - Total number of parameters in model: 18924381
2019-12-31 10:59:39,499 - INFO - ================================
>>>
>>> wav_filepath = "./romance_gt.wav"
>>> asr_model.transcribe(wav_filepath)
2019-12-31 10:57:50,554 - INFO - Started Transcribing Speech
2019-12-31 10:57:50,582 - INFO - Dataset loaded with 0.00 hours. Filtered 0.00 hours.
2019-12-31 10:57:50,584 - INFO - Loading 1 examples
2019-12-31 10:57:52,799 - INFO - Evaluating batch 0 out of 1
You said: ["i'm too busy for romance"]
有关更多信息,您可以从此处检查官方文档。
在这里,我将解释如何将文本用于Nemo Collections内部的语音模块。您可以通过遵循此步骤轻松执行此操作:
从此处下载预训练的模型。如果您已经训练自己的模型,则可以跳过此步骤。我本人在LJSpeech数据集上使用了Tacotron2模型Traind。您可以从这里下载它。
在tts_model目录中找到您的TTS模型。或将其找到所需的任何位置,只需编辑yaml变量tts: model_dir conf.yaml文件。
确定辅助型模型...您可以使用Tacotron1中使用的griffin-lim该lim lim超级快,不需要任何培训。但是,如果您想获得更好的结果,那么您将必须要做:
(可选)如果您决定使用WaveLlow Vocoder,则需要在此目录中找到它./tts_model/waveglow 。或者,您可以将其找到所需的任何位置,只需编辑yaml变量tts: vocoder_dir conf.yaml文件中的vocoder_dir即可。
运行以下代码以对您的首选文本执行语音合成操作:
>>> from tts import TTS
>>> tts_model = TTS()
2019-12-31 11:15:02,897 - INFO - ================================
2019-12-31 11:15:03,001 - INFO - Number of parameters in text-embedding: 35328
2019-12-31 11:15:03,089 - INFO - Number of parameters in encoder: 5513728
2019-12-31 11:15:03,285 - INFO - Number of parameters in decoder: 18255505
2019-12-31 11:15:03,373 - INFO - Number of parameters in postnet: 4348144
2019-12-31 11:15:03,373 - INFO - Total number of parameters in model: 28152705
2019-12-31 11:15:03,373 - INFO - Loading waveglow as a vocoder
2019-12-31 11:15:15,161 - INFO - ================================
>>>
>>> text = "Speech synthesis is pretty cool"
>>> tts_model.synthesis(text)
2019-12-31 11:23:33,953 - INFO - Starting speech synthesis
2019-12-31 11:23:33,963 - INFO - Running Tacotron 2
2019-12-31 11:23:34,055 - INFO - Evaluating batch 0 out of 1
2019-12-31 11:23:35,689 - INFO - Running Waveglow as a vocoder
2019-12-31 11:23:35,690 - INFO - Evaluating batch 0 out of 1
2019-12-31 11:24:39,655 - INFO - Wav file was generated and named: waveglow_sample.wav
有关更多信息,您可以从此处检查官方文档。