此存儲庫是將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
有關更多信息,您可以從此處檢查官方文檔。