repo นี้เป็นความพยายามที่จะรวมองค์ประกอบหลักทั้งสามของ NEMO เข้ากับเว็บอินเตอร์เฟสที่สามารถใช้งานได้ง่ายโดยไม่จำเป็นต้องขุดลึกลงไปในชุดเครื่องมือเอง
NEMO ย่อมาจาก "โมดูลประสาท" และเป็นชุดเครื่องมือที่สร้างขึ้น Bey Nvidia ด้วยคอลเลกชันของโมดูลที่สร้างไว้ล่วงหน้าสำหรับการรู้จำเสียงพูดอัตโนมัติ (ASR), การประมวลผลภาษาธรรมชาติ (NLP) และการสังเคราะห์ข้อความ (TTS) Nemo ประกอบด้วย:
NEMO's ได้รับการออกแบบให้เป็นเฟรมเวิร์กที่ไม่เชื่อเรื่องพระเจ้า แต่ปัจจุบันมีเพียง Pytorch เท่านั้นที่ได้รับการสนับสนุน นอกจากนี้ NEMO ยังให้การสนับสนุนในตัวสำหรับการฝึกอบรมแบบกระจายและความแม่นยำผสมใน NVIDIA GPUs ล่าสุด
ในการเริ่มต้นกับที่เก็บนี้คุณต้องติดตั้ง:
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 คุณต้องติดตั้งตัวถอดรหัส CTC ของ Baidu:
./scripts/install_decoders.sh
ที่นี่ฉันจะอธิบายวิธีการใช้การรู้จำเสียงพูดอัตโนมัติภายใน คอลเลกชัน NEMO คุณสามารถทำได้อย่างง่ายดายโดยทำตามขั้นตอนนี้:
ดาวน์โหลดรุ่นที่ผ่านการฝึกอบรมมาก่อนจากที่นี่ หากคุณได้รับการฝึกฝนแบบจำลองของคุณเองคุณสามารถข้ามขั้นตอนนี้ได้ ฉันเองใช้โมเดล Jasper Quartznet15x5 คุณสามารถดาวน์โหลดได้จากที่นี่
ค้นหาโมเดล ASR ของคุณภายในไดเรกทอรี asr_model หรือค้นหาที่ใดก็ตามที่คุณต้องการเพียงแก้ไขตัวแปร 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 คุณสามารถทำได้อย่างง่ายดายโดยทำตามขั้นตอนนี้:
ดาวน์โหลดรุ่นที่ผ่านการฝึกอบรมมาก่อนจากที่นี่ หากคุณได้รับการฝึกฝนแบบจำลองของคุณเองคุณสามารถข้ามขั้นตอนนี้ได้ ฉันเองใช้ TACOTRON2 MODEL TRAIND บนชุดข้อมูล LJSpeech คุณสามารถดาวน์โหลดได้จากที่นี่
ค้นหาโมเดล TTS ของคุณภายในไดเรกทอรี tts_model หรือค้นหาที่ใดก็ได้ที่คุณต้องการเพียงแก้ไขตัวแปร YAML tts: model_dir ภายในไฟล์ conf.yaml
กำหนดโมเดล Vocoder ... คุณสามารถใช้ griffin-lim ที่ใช้ใน Tacotron1 ซึ่งเร็วมากและไม่ต้องการการฝึกอบรมใด ๆ แต่ถ้าคุณต้องการให้ได้ผลลัพธ์ที่ดีขึ้นคุณก็จะต้องทำเช่นนั้น:
(ไม่บังคับ) หากคุณตัดสินใจที่จะใช้ Vairglow Vocoder คุณจะต้องค้นหาในไดเรกทอรีนี้ ./tts_model/waveglow waveglow หรือคุณสามารถค้นหาได้ทุกที่ที่คุณต้องการเพียงแก้ไขตัวแปร YAML tts: vocoder_dir ภายในไฟล์ conf.yaml
เรียกใช้รหัสต่อไปนี้เพื่อดำเนินการสังเคราะห์คำพูดบนข้อความที่คุณต้องการ:
>>> 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
สำหรับข้อมูลเพิ่มเติมคุณสามารถตรวจสอบเอกสารอย่างเป็นทางการได้จากที่นี่