Repo ini adalah upaya untuk menggabungkan ketiga komponen utama NEMO menjadi antarmuka web yang dapat digunakan dengan mudah tanpa perlu menggali lebih dalam ke toolkit itu sendiri.
Nemo adalah singkatan dari "Modul Saraf" dan itu adalah toolkit yang dibuat Bey Nvidia dengan koleksi modul pra-built untuk pengenalan ucapan otomatis (ASR), pemrosesan bahasa alami (NLP) dan sintesis teks (TTS). Nemo terdiri dari:
Nemo dirancang untuk menjadi kerangka kerja-agnostik, tetapi saat ini hanya Pytorch yang didukung. Selain itu, NEMO memberikan dukungan bawaan untuk pelatihan terdistribusi dan presisi beragam pada GPU NVIDIA terbaru.
Untuk memulai dengan repositori ini, Anda perlu menginstal:
pip install -r requirements.txt
Jika mesin Anda mendukung CUDA, maka Anda perlu menginstal NVIDIA APEX untuk kinerja terbaik pada model pelatihan/evaluasi.
git clone https://github.com/NVIDIA/apex
cd apex
pip install -v --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./
Jika Anda ingin menggunakan model bahasa saat menggunakan model ASR, maka Anda perlu menginstal decoder CTC Baidu:
./scripts/install_decoders.sh
Di sini, saya akan menjelaskan cara menggunakan pengenalan suara otomatis di dalam koleksi Nemo . Anda dapat melakukannya dengan mudah dengan mengikuti langkah -langkah ini:
Unduh model pra-terlatih dari sini. Jika Anda telah melatih model Anda sendiri, maka Anda dapat melewatkan langkah ini. Saya, saya sendiri, menggunakan model Jasper Quartznet15x5. Anda dapat mengunduhnya dari sini.
Temukan model ASR Anda di dalam direktori asr_model . Atau temukan di tempat yang Anda inginkan, cukup edit variabel yaml asr: model_dir di dalam file conf.yaml .
Rekam audio dengan suara Anda. Atau Anda dapat mengunduh sampel audio, saya telah menggunakan ini.
Jalankan kode berikut untuk mendapatkan transkripsi gelombang:
>>> 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"]
Untuk informasi lebih lanjut, Anda dapat memeriksa dokumentasi resmi dari sini.
Di sini, saya akan menjelaskan cara menggunakan modul teks ke ucapan di dalam koleksi nemo . Anda dapat melakukannya dengan mudah dengan mengikuti langkah -langkah ini:
Unduh model pra-terlatih dari sini. Jika Anda telah melatih model Anda sendiri, maka Anda dapat melewatkan langkah ini. Saya sendiri menggunakan model Tacotron2 Model pada dataset LJSPEECH. Anda dapat mengunduhnya dari sini.
Temukan model TTS Anda di dalam direktori tts_model . Atau temukan di tempat yang Anda inginkan, cukup edit variabel YAML tts: model_dir di dalam file conf.yaml .
Tentukan model vokoder ... Anda dapat menggunakan griffin-lim yang digunakan di Tacotron1 yang sangat cepat dan tidak memerlukan pelatihan apa pun. Tetapi, jika Anda ingin mendapatkan hasil yang lebih baik, maka Anda harus:
(Opsional) Jika Anda memutuskan untuk menggunakan vocoder Waveglow , maka Anda perlu menemukannya di direktori ini ./tts_model/waveglow . Atau Anda dapat menemukannya di tempat yang Anda inginkan, cukup edit variabel YAML tts: vocoder_dir di dalam file conf.yaml .
Jalankan kode berikut untuk melakukan operasi sintesis ucapan pada teks pilihan Anda:
>>> 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
Untuk informasi lebih lanjut, Anda dapat memeriksa dokumentasi resmi dari sini.