Python Scripts เพื่อคำนวณโมเดลเสียงและภาษาจากข้อมูลคำพูด voxforge.org และแหล่งข้อมูลมากมาย แบบจำลองที่สามารถสร้างได้ ได้แก่ :
สำคัญ : โปรดทราบว่าสคริปต์เหล่านี้แบบฟอร์มไม่มีแอปพลิเคชันที่สมบูรณ์พร้อมสำหรับการบริโภคผู้ใช้ปลายทาง อย่างไรก็ตามหากคุณเป็นนักพัฒนาที่สนใจในการประมวลผลภาษาธรรมชาติคุณอาจพบว่าบางอย่างมีประโยชน์ ยินดีต้อนรับการมีส่วนร่วมแพทช์และคำขอดึงยินดีเป็นอย่างยิ่ง
ในช่วงเวลาของการเขียนนี้สคริปต์ที่นี่มุ่งเน้นไปที่การสร้างโมเดล Voxforge ภาษาอังกฤษและภาษาเยอรมัน อย่างไรก็ตามไม่มีเหตุผลว่าทำไมพวกเขาจึงไม่สามารถใช้ในการสร้างแบบจำลองภาษาอื่น ๆ ได้เช่นกันอย่าลังเลที่จะสนับสนุนการสนับสนุนเหล่านั้น
สร้างโดย GH-MD-TOC
เรามีรุ่นต่าง ๆ รวมถึงซอร์สโค้ดและไบนารีสำหรับเครื่องมือที่ใช้ในการสร้างโมเดลเหล่านี้สำหรับดาวน์โหลด ทุกอย่างฟรีและโอเพ่นซอร์ส
การดาวน์โหลดแบบจำลองและข้อมูลทั้งหมดของเราสามารถพบได้ที่นี่: ดาวน์โหลด
รุ่น ASR ที่สร้างไว้ล่วงหน้าของเราสามารถดาวน์โหลดได้ที่นี่: ASR Models
kaldi-generic-en-tdnn_f ขนาดใหญ่ NNET3-Chain-chain แบบจำลอง TDNN แบบแยกส่วนได้รับการฝึกฝนเมื่อใช้เสียง ~ 1200 ชั่วโมง มีความต้านทานเสียงรบกวนพื้นหลังที่ดีและยังสามารถใช้ในการบันทึกโทรศัพท์ ควรให้ความแม่นยำที่ดีที่สุด แต่เป็นทรัพยากรที่เข้มข้นกว่ารุ่นอื่น ๆ เล็กน้อยkaldi-generic-en-tdnn_sp รุ่น Nnet3-chain ขนาดใหญ่ได้รับการฝึกฝนเมื่อใช้เสียง ~ 1200 ชั่วโมง มีความต้านทานเสียงรบกวนพื้นหลังที่ดีและยังสามารถใช้ในการบันทึกโทรศัพท์ มีความแม่นยำน้อยกว่า แต่ยังใช้ทรัพยากรที่เข้มข้นน้อยกว่ารุ่น tddn_f เล็กน้อยkaldi-generic-en-tdnn_250 เหมือนกับรุ่นที่มีขนาดใหญ่กว่า แต่ใช้ทรัพยากรน้อยลงเหมาะสำหรับใช้ในแอปพลิเคชันที่ฝังตัว (เช่น RaspberryPi 3)kaldi-generic-en-tri2b_chain GMM ได้รับการฝึกฝนจากข้อมูลเดียวกันกับสองรุ่นข้างต้น-หมายถึงงานการแบ่งส่วนอัตโนมัติkaldi-generic-de-tdnn_f รุ่น NNET3-Chain ขนาดใหญ่ได้รับการฝึกฝนด้วยเสียง ~ 400 ชั่วโมง มีความต้านทานเสียงรบกวนพื้นหลังที่ดีและยังสามารถใช้ในการบันทึกโทรศัพท์kaldi-generic-de-tdnn_250 เหมือนกับรุ่นขนาดใหญ่ แต่ใช้ทรัพยากรน้อยลงเหมาะสำหรับใช้ในแอปพลิเคชันที่ฝังตัว (เช่น RaspberryPi 3)kaldi-generic-de-tri2b_chain GMM ได้รับการฝึกฝนจากข้อมูลเดียวกันกับสองรุ่นข้างต้น-หมายถึงงานการแบ่งส่วนอัตโนมัติw2l-generic-de ได้รับการฝึกฝนด้วยเสียง ~ 400 ชั่วโมง มีความต้านทานเสียงรบกวนพื้นหลังที่ดีและยังสามารถใช้ในการบันทึกโทรศัพท์หมายเหตุ : เป็นสิ่งสำคัญที่จะต้องตระหนักว่าโมเดลเหล่านี้สามารถและควรปรับให้เข้ากับโดเมนแอปพลิเคชันของคุณ ดูการปรับแบบจำลองสำหรับรายละเอียด
พจนานุกรมของเราสามารถดาวน์โหลดได้ที่นี่: พจนานุกรม
dict-en.ipa ขึ้นอยู่กับ cmudict ที่มีรายการเพิ่มเติมมากมายที่สร้างขึ้นผ่าน Sequitur G2Pdict-de.ipa สร้างด้วยตนเองตั้งแต่เริ่มต้นด้วยรายการที่ผ่านการตรวจสอบอัตโนมัติเพิ่มเติมมากมายที่สกัดจาก Wiktionary รุ่น G2P ที่สร้างไว้ล่วงหน้าของเราสามารถดาวน์โหลดได้ที่นี่: รุ่น G2P
sequitur-dict-en.ipa Sequitur G2P รุ่นที่ผ่านการฝึกอบรมเกี่ยวกับพจนานุกรม IPA ภาษาอังกฤษของเรา (UTF8)sequitur-dict-de.ipa Sequitur G2P รุ่นที่ผ่านการฝึกอบรมเกี่ยวกับพจนานุกรม IPA เยอรมันของเรา (UTF8) โมเดลภาษา ARPA ที่สร้างไว้ล่วงหน้าของเราสามารถดาวน์โหลดได้ที่นี่: รูปแบบภาษา
generic_en_lang_model_smallgeneric_en_lang_model_largegeneric_de_lang_model_smallgeneric_de_lang_model_large ดาวน์โหลดไฟล์คลื่นตัวอย่างไม่กี่ไฟล์
$ wget http://goofy.zamia.org/zamia-speech/misc/demo_wavs.tgz
--2018-06-23 16:46:28-- http://goofy.zamia.org/zamia-speech/misc/demo_wavs.tgz
Resolving goofy.zamia.org (goofy.zamia.org)... 78.47.65.20
Connecting to goofy.zamia.org (goofy.zamia.org) | 78.47.65.20 | :80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 619852 (605K) [application/x-gzip]
Saving to: ‘demo_wavs.tgz’
demo_wavs.tgz 100%[ ==========================================================> ] 605.32K 2.01MB/s in 0.3s
2018-06-23 16:46:28 (2.01 MB/s) - ‘demo_wavs.tgz’ saved [619852/619852]แกะพวกเขา:
$ tar xfvz demo_wavs.tgz
demo1.wav
demo2.wav
demo3.wav
demo4.wavดาวน์โหลดโปรแกรมสาธิต
$ wget http://goofy.zamia.org/zamia-speech/misc/kaldi_decode_wav.py
--2018-06-23 16:47:53-- http://goofy.zamia.org/zamia-speech/misc/kaldi_decode_wav.py
Resolving goofy.zamia.org (goofy.zamia.org)... 78.47.65.20
Connecting to goofy.zamia.org (goofy.zamia.org) | 78.47.65.20 | :80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2469 (2.4K) [text/plain]
Saving to: ‘kaldi_decode_wav.py’
kaldi_decode_wav.py 100%[ ==========================================================> ] 2.41K --.-KB/s in 0s
2018-06-23 16:47:53 (311 MB/s) - ‘kaldi_decode_wav.py’ saved [2469/2469]ตอนนี้เรียกใช้การรู้จำเสียงพูดอัตโนมัติ Kaldi บนไฟล์ Demo WAV:
$ python kaldi_decode_wav.py -v demo ? .wav
DEBUG:root:/opt/kaldi/model/kaldi-generic-en-tdnn_sp loading model...
DEBUG:root:/opt/kaldi/model/kaldi-generic-en-tdnn_sp loading model... done, took 1.473226s.
DEBUG:root:/opt/kaldi/model/kaldi-generic-en-tdnn_sp creating decoder...
DEBUG:root:/opt/kaldi/model/kaldi-generic-en-tdnn_sp creating decoder... done, took 0.143928s.
DEBUG:root:demo1.wav decoding took 0.37s, likelyhood: 1.863645
i cannot follow you she said
DEBUG:root:demo2.wav decoding took 0.54s, likelyhood: 1.572326
i should like to engage just for one whole life in that
DEBUG:root:demo3.wav decoding took 0.42s, likelyhood: 1.709773
philip knew that she was not an indian
DEBUG:root:demo4.wav decoding took 1.06s, likelyhood: 1.715135
he also contented that better confidence was established by carrying no weapons กำหนดชื่อแหล่งไมโครโฟน Pulseaudio ของคุณ:
$ pactl list sources
Source # 0
State: SUSPENDED
Name: alsa_input.usb-C-Media_Electronics_Inc._USB_PnP_Sound_Device-00.analog-mono
Description: CM108 Audio Controller Analog Mono
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ดาวน์โหลดและเรียกใช้การสาธิต:
$ wget ' http://goofy.zamia.org/zamia-speech/misc/kaldi_decode_live.py '
$ python kaldi_decode_live.py -s ' CM108 '
Kaldi live demo V0.2
Loading model from /opt/kaldi/model/kaldi-generic-en-tdnn_250 ...
Please speak.
hallo computer
switch on the radio please
please switch on the light
what about the weather in stuttgart
how are you
thank you
good bye ในการเริ่มต้นบริการ STT บนเครื่องในพื้นที่ของคุณให้ดำเนินการ:
$ docker pull quay.io/mpuels/docker-py-kaldi-asr-and-model:kaldi-generic-en-tdnn_sp-r20180611
$ docker run --rm -p 127.0.0.1:8080:80/tcp quay.io/mpuels/docker-py-kaldi-asr-and-model:kaldi-generic-en-tdnn_sp-r20180611ในการถ่ายโอนไฟล์เสียงสำหรับการถอดความไปยังบริการในเทอร์มินัลที่สองให้ดำเนินการ:
$ git clone https://github.com/mpuels/docker-py-kaldi-asr-and-model.git
$ conda env create -f environment.yml
$ source activate py-kaldi-asr-client
$ ./asr_client.py asr.wav
INFO:root: 0.005s: 4000 frames ( 0.250s) decoded, status=200.
...
INFO:root:19.146s: 152000 frames ( 9.500s) decoded, status=200.
INFO:root:27.136s: 153003 frames ( 9.563s) decoded, status=200.
INFO:root: *****************************************************************
INFO:root: ** wavfn : asr.wav
INFO:root: ** hstr : speech recognition system requires training where individuals to exercise political system
INFO:root: ** confidence : -0.578844
INFO:root: ** decoding time : 27.14s
INFO:root: *****************************************************************ภาพนักเทียบท่าในตัวอย่างด้านบนเป็นผลมาจากการซ้อน 4 ภาพที่ด้านบนของกันและกัน:
Docker-py-kaldi-asr-and-model: แหล่งที่มา, รูปภาพ
Docker-py-kaldi-asr: แหล่งที่มา, รูปภาพ
Docker-Kaldi-asr: แหล่งที่มา, รูปภาพ
Debian: 8: https://hub.docker.com/_/debian/
หมายเหตุ : อาจไม่สมบูรณ์
ตัวอย่างการติดตั้งการพึ่งพาสำหรับ Debian :
apt-get install build-essential pkg-config python-pip python-dev python-setuptools python-wheel ffmpeg sox libatlas-base-dev
# Create a symbolic link because one of the pip packages expect atlas in this location:
ln -s /usr/include/x86_64-linux-gnu/atlas /usr/include/atlas
pip install numpy nltk cython
pip install py-kaldi-asr py-nltools
เพียงแค่บันทึกคร่าวๆเกี่ยวกับสภาพแวดล้อมที่จำเป็นเพื่อให้สคริปต์เหล่านี้ทำงาน นี่ไม่ใช่ชุดคำแนะนำที่สมบูรณ์เพียงแค่คำแนะนำบางอย่างเพื่อให้คุณเริ่มต้นได้
~/.speechrc [speech]
vf_login = <your voxforge login>
speech_arc = /home/bofh/projects/ai/data/speech/arc
speech_corpora = /home/bofh/projects/ai/data/speech/corpora
kaldi_root = /apps/kaldi-cuda
; facebook's wav2letter++
w2l_env_activate = /home/bofh/projects/ai/w2l/bin/activate
w2l_train = /home/bofh/projects/ai/w2l/src/wav2letter/build/Train
w2l_decoder = /home/bofh/projects/ai/w2l/src/wav2letter/build/Decoder
wav16 = /home/bofh/projects/ai/data/speech/16kHz
noise_dir = /home/bofh/projects/ai/data/speech/corpora/noise
europarl_de = /home/bofh/projects/ai/data/corpora/de/europarl-v7.de-en.de
parole_de = /home/bofh/projects/ai/data/corpora/de/German Parole Corpus/DE_Parole/
europarl_en = /home/bofh/projects/ai/data/corpora/en/europarl-v7.de-en.en
cornell_movie_dialogs = /home/bofh/projects/ai/data/corpora/en/cornell_movie_dialogs_corpus
web_questions = /home/bofh/projects/ai/data/corpora/en/WebQuestions
yahoo_answers = /home/bofh/projects/ai/data/corpora/en/YahooAnswers
europarl_fr = /home/bofh/projects/ai/data/corpora/fr/europarl-v7.fr-en.fr
est_republicain = /home/bofh/projects/ai/data/corpora/fr/est_republicain.txt
wiktionary_de = /home/bofh/projects/ai/data/corpora/de/dewiktionary-20180320-pages-meta-current.xml
[tts]
host = localhost
port = 8300 สคริปต์บางส่วนคาดว่าจะมีไดเรกทอรี tmp ในพื้นที่ตั้งอยู่ในไดเรกทอรีเดียวกันซึ่งสคริปต์ทั้งหมดมีชีวิตอยู่เช่น
mkdir tmpรายการต่อไปนี้มีคำพูดที่ได้รับการสนับสนุนจากคอลเลกชันสคริปต์นี้
Forschergeist (เยอรมัน 2 ชั่วโมง):
<~/.speechrc:speech_arc>/forschergeist<~/.speechrc:speech_corpora>/forschergeistแพ็คเกจคำพูดภาษาเยอรมันเวอร์ชัน 2 (เยอรมัน 148 ชั่วโมง):
dev , test และ train เป็นไดเรกทอรีย่อยโดยตรงของ <~/.speechrc:speech_arc>/gspv2./import_gspv2.py เพื่อแปลงคลังข้อมูลเป็นรูปแบบ voxforge คลังข้อมูลที่ได้จะถูกเขียนถึง <~/.speechrc:speech_corpora>/gspv2เสียงรบกวน:
<~/.speechrc:speech_corpora>/ (มันจะสร้างไดเรกทอรีย่อย noise ที่นั่น)Librispeech ASR (ภาษาอังกฤษ, 475 ชั่วโมง):
LibriSpeech เป็นไดเรกทอรีย่อยโดยตรงของ <~/.speechrc:speech_arc>./import_librispeech.py เพื่อแปลงคลังข้อมูลเป็นรูปแบบ voxforge คลังข้อมูลที่ได้จะถูกเขียนถึง <~/.speechrc:speech_corpora>/librispeechชุดข้อมูลคำพูด LJ (ภาษาอังกฤษ 24 ชั่วโมง):
LJSpeech-1.1 เป็นไดเรกทอรีย่อยโดยตรงของ <~/.speechrc:speech_arc>import_ljspeech.py เพื่อแปลงคลังข้อมูลเป็นรูปแบบ voxforge คลังข้อมูลที่ได้จะถูกเขียนถึง <~/.speechrc:speech_corpora>/lindajohnson-11Mozilla Common Voice ภาษาเยอรมัน (เยอรมัน 140 ชั่วโมง):
de.tar.gzcv_de เป็นไดเรกทอรีย่อยโดยตรงของ <~/.speechrc:speech_arc>./import_mozde.py เพื่อแปลงคลังข้อมูลเป็นรูปแบบ voxforge คลังข้อมูลที่ได้จะถูกเขียนถึง <~/.speechrc:speech_corpora>/cv_deMozilla Common Voice v1 (ภาษาอังกฤษ 252 ชั่วโมง):
cv_corpus_v1.tar.gzcv_corpus_v1 เป็นไดเรกทอรีย่อยโดยตรงของ <~/.speechrc:speech_arc>./import_mozcv1.py เพื่อแปลงคลังข้อมูลเป็นรูปแบบ voxforge คลังข้อมูลที่ได้จะถูกเขียนถึง <~/.speechrc:speech_corpora>/cv_corpus_v1Munich Artificial Intelligence Laboratories GmbH (M-Ailabs) ชุดข้อมูลคำพูด (ภาษาอังกฤษ, 147 ชั่วโมง, เยอรมัน, 237 ชั่วโมง, ฝรั่งเศส, 190 ชั่วโมง):
de_DE.tgz , en_UK.tgz , en_US.tgz , fr_FR.tgz (กระจก)m_ailabs ย่อยใน <~/.speechrc:speech_arc>m_ailabsby_book และย้ายไดเรกทอรี male และ female ในนั้นเนื่องจากคลังเก็บไม่เป็นไปตามโครงสร้างภาษาอังกฤษและภาษาเยอรมันที่แน่นอน./import_mailabs.py เพื่อแปลงคลังข้อมูลเป็นรูปแบบ voxforge คลังข้อมูลที่ได้จะถูกเขียนถึง <~/.speechrc:speech_corpora>/m_ailabs_en , <~/.speechrc:speech_corpora>/m_ailabs_de และ <~/.speechrc:speech_corpora>/m_ailabs_frTed-lium release 3 (ภาษาอังกฤษ, 210 ชั่วโมง):
TEDLIUM_release-3.tgzTEDLIUM_release-3 เป็นไดเรกทอรีย่อยโดยตรงของ <~/.speechrc:speech_arc>./import_tedlium3.py เพื่อแปลงคลังข้อมูลเป็นรูปแบบ voxforge คลังข้อมูลที่ได้จะถูกเขียนถึง <~/.speechrc:speech_corpora>/tedlium3voxforge (ภาษาอังกฤษ, 75 ชั่วโมง):
<~/.speechrc:speech_arc>/voxforge_en<~/.speechrc:speech_corpora>/voxforge_enVoxforge (เยอรมัน 56 ชั่วโมง):
<~/.speechrc:speech_arc>/voxforge_de<~/.speechrc:speech_corpora>/voxforge_deVoxforge (ฝรั่งเศส 140 ชั่วโมง):
<~/.speechrc:speech_arc>/voxforge_fr<~/.speechrc:speech_corpora>/voxforge_frZamia (ภาษาอังกฤษ 5 นาที):
<~/.speechrc:speech_arc>/zamia_en<~/.speechrc:speech_corpora>/zamia_enZamia (เยอรมัน, 18 ชั่วโมง):
<~/.speechrc:speech_arc>/zamia_de<~/.speechrc:speech_corpora>/zamia_de หมายเหตุทางเทคนิค : สำหรับ corpora ส่วนใหญ่เราได้แก้ไขการถอดเสียงในฐานข้อมูลของเราซึ่งสามารถพบได้ใน data/src/speech/<corpus_name>/transcripts_*.csv . CSV เนื่องจากสิ่งเหล่านี้ถูกสร้างขึ้นโดยการทบทวนด้วยตนเอง (กึ่งด้วยตนเองหลายชั่วโมงพวกเขาควรมีคุณภาพสูงกว่าการแจ้งเตือนเดิมดังนั้นพวกเขาจะถูกนำมาใช้ในระหว่างการฝึกอบรมโมเดล ASR ของเรา
เมื่อคุณดาวน์โหลดแล้วและหากจำเป็นต้องแปลงคลังข้อมูลที่คุณต้องเรียกใช้
./speech_audio_scan.py < corpus name >บนมัน. สิ่งนี้จะเพิ่มพรอมต์ที่ขาดหายไปในฐานข้อมูล CSV และแปลงไฟล์เสียงเป็นรูปแบบคลื่นโมโน 16KHz
เพื่อปรับปรุงความต้านทานเสียงรบกวนเป็นไปได้ที่จะได้รับ corpora จากสิ่งที่มีอยู่ด้วยเสียงรบกวน:
./speech_gen_noisy.py zamia_de
./speech_audio_scan.py zamia_de_noisy
cp data/src/speech/zamia_de/spk2gender data/src/speech/zamia_de_noisy/
cp data/src/speech/zamia_de/spk_test.txt data/src/speech/zamia_de_noisy/
./auto_review.py -a zamia_de_noisy
./apply_review.py -l de zamia_de_noisy review-result.csv สคริปต์นี้จะเรียกใช้การบันทึกผ่านตัวแปลงสัญญาณโทรศัพท์ทั่วไป คลังข้อมูลดังกล่าวสามารถใช้ในการฝึกอบรมรุ่นที่รองรับการบันทึกโทรศัพท์ 8KHz:
./speech_gen_phone.py zamia_de
./speech_audio_scan.py zamia_de_phone
cp data/src/speech/zamia_de/spk2gender data/src/speech/zamia_de_phone/
cp data/src/speech/zamia_de/spk_test.txt data/src/speech/zamia_de_phone/
./auto_review.py -a zamia_de_phone
./apply_review.py -l de zamia_de_phone review-result.csv รายการต่อไปนี้มีข้อความที่สามารถใช้ในการฝึกอบรมแบบจำลองภาษาด้วยสคริปต์ที่มีอยู่ในที่เก็บนี้:
Europarl, Corpus คู่ขนานโดยเฉพาะภาษาเยอรมัน-ภาษาอังกฤษและคู่ขนานภาษาฝรั่งเศส-ภาษาอังกฤษ:
.speechrc : europarl_de , europarl_en , europarl_fr./speech_sentences.py europarl_de , ./speech_sentences.py europarl_en และ ./speech_sentences.py europarl_frCornell Movie-Dialogs Corpus:
.speechrc : cornell_movie_dialogs./speech_sentences.py cornell_movie_dialogsคลังทัณฑ์บนเยอรมัน:
.speechrc : parole_de./speech_train_punkt_tokenizer.py จากนั้นเรียกใช้ ./speech_sentences.py parole_de WebQuestions: web_questions
.speechrc : web_questions./speech_sentences.py web_questions Yahoo! ชุดข้อมูลคำตอบ: yahoo_answers
.speechrc : yahoo_answers./speech_sentences.py yahoo_answers CNRTL EST Républicain Corpus, คลังข้อมูลขนาดใหญ่ของบทความข่าว (พาดหัว 4.3m/ย่อหน้า) ที่มีอยู่ภายใต้ใบอนุญาต CC BY-NC-SA ดาวน์โหลดไฟล์ XML และสกัดพาดหัวและย่อหน้าไปยังไฟล์ข้อความที่มีคำสั่งต่อไปนี้: xmllint --xpath '//*[local-name()="div"][@type="article"]//*[local-name()="p" or local-name()="head"]/text()' Annee*/*.xml | perl -pe 's/^ +//g ; s/^ (.+)/$1n/g ; chomp' > est_republicain.txt
.speechrc : est_republicain./speech_sentences.py est_republicainประโยคยังสามารถสกัดได้จาก Corpora คำพูดของเรา ในการทำเช่นนั้น Run:
Corpora คำพูดภาษาอังกฤษ
./speech_sentences.py voxforge_en./speech_sentences.py librispeech./speech_sentences.py zamia_en./speech_sentences.py cv_corpus_v1./speech_sentences.py ljspeech./speech_sentences.py m_ailabs_en./speech_sentences.py tedlium3Corpora คำพูดภาษาเยอรมัน
./speech_sentences.py forschergeist./speech_sentences.py gspv2./speech_sentences.py voxforge_de./speech_sentences.py zamia_de./speech_sentences.py m_ailabs_de./speech_sentences.py cv_deข้อกำหนดเบื้องต้น:
europarl_en , cornell_movie_dialogs , web_questions และ yahoo_answers ถูกติดตั้งประโยคที่สกัด (ดูคำแนะนำด้านบน)librispeech , voxforge_en , zamia_en , cv_corpus_v1 , ljspeech , m_ailabs_en , tedlium3ในการฝึกอบรมรูปแบบภาษาอังกฤษขนาดเล็กที่ถูกตัดแต่งตามลำดับ 4 โดยใช้ Kenlm เพื่อใช้ในทั้ง Kaldi และ Wav2letter Builds Run:
./speech_build_lm.py generic_en_lang_model_small europarl_en cornell_movie_dialogs web_questions yahoo_answers librispeech voxforge_en zamia_en cv_corpus_v1 ljspeech m_ailabs_en tedlium3เพื่อฝึกอบรมรุ่นที่ใหญ่ขึ้นของคำสั่ง 6 ด้วยการตัดแต่งกิ่งน้อยลง:
./speech_build_lm.py -o 6 -p " 0 0 0 0 1 " generic_en_lang_model_large europarl_en cornell_movie_dialogs web_questions yahoo_answers librispeech voxforge_en zamia_en cv_corpus_v1 ljspeech m_ailabs_en tedlium3เพื่อฝึกอบรมขนาดกลางของคำสั่งซื้อ 5:
./speech_build_lm.py -o 5 -p " 0 0 1 2 " generic_en_lang_model_medium europarl_en cornell_movie_dialogs web_questions yahoo_answers librispeech voxforge_en zamia_en cv_corpus_v1 ljspeech m_ailabs_en tedlium3ข้อกำหนดเบื้องต้น:
europarl_de และ parole_de , ประโยคที่สกัด (ดูคำแนะนำด้านบน)forschergeist , gspv2 , voxforge_de , zamia_de , m_ailabs_de , cv_deในการฝึกอบรมรูปแบบภาษาเยอรมันขนาดเล็กที่ถูกตัดแต่งตามลำดับ 4 โดยใช้ Kenlm เพื่อใช้ในทั้ง Kaldi และ Wav2letter Builds Run:
./speech_build_lm.py generic_de_lang_model_small europarl_de parole_de forschergeist gspv2 voxforge_de zamia_de m_ailabs_de cv_deเพื่อฝึกอบรมรุ่นที่ใหญ่ขึ้นของคำสั่ง 6 ด้วยการตัดแต่งกิ่งน้อยลง:
./speech_build_lm.py -o 6 -p " 0 0 0 0 1 " generic_de_lang_model_large europarl_de parole_de forschergeist gspv2 voxforge_de zamia_de m_ailabs_de cv_deเพื่อฝึกอบรมขนาดกลางของคำสั่งซื้อ 5:
./speech_build_lm.py -o 5 -p " 0 0 1 2 " generic_de_lang_model_medium europarl_de parole_de forschergeist gspv2 voxforge_de zamia_de m_ailabs_de cv_deข้อกำหนดเบื้องต้น:
europarl_fr และ est_republicain , ประโยคที่สกัด (ดูคำแนะนำด้านบน)voxforge_fr และ m_ailabs_frเพื่อฝึกอบรมรูปแบบภาษาฝรั่งเศสโดยใช้ Kenlm Run:
./speech_build_lm.py generic_fr_lang_model europarl_fr est_republicain voxforge_fr m_ailabs_frเครื่องมือหลักที่ใช้สำหรับการตรวจสอบการส่งการถอดความและการขยายพจนานุกรมคือ:
./speech_editor.pyหมายเหตุ : เราใช้คำศัพท์พจนานุกรมและพจนานุกรมที่สลับฉากในเอกสารนี้และสคริปต์ของเรา
ปัจจุบันเรามีศัพท์สองตัวหนึ่งอันสำหรับภาษาอังกฤษและอีกอันสำหรับภาษาเยอรมัน (ใน data/src/dicts ):
dict-en.ipa
dict-de.ipa
รูปแบบดั้งเดิมของ Lexica ของเราอยู่ใน (UTF8) IPA ที่มีเครื่องหมายอัฒภาคเป็นตัวคั่น รูปแบบนี้จะถูกแปลงเป็นรูปแบบใดก็ตามที่ใช้โดยเอ็นจิ้น ASR เป้าหมายโดยสคริปต์การส่งออกที่สอดคล้องกัน
เครื่องมือที่เกี่ยวข้องกับพจนานุกรมจำนวนมากขึ้นอยู่กับ Sequitur G2P เพื่อคำนวณการออกเสียงสำหรับคำที่ขาดหายไปจากพจนานุกรม รุ่นที่จำเป็นสามารถดาวน์โหลดได้จากเซิร์ฟเวอร์ไฟล์ของเรา: http://goofy.zamia.org/zamia-speech/g2p/ สำหรับการติดตั้งดาวน์โหลดและแกะกล่องแล้วใส่ลิงก์ไปยัง data/models เช่น SO:
data/models/sequitur-dict-de.ipa-latest - > < your model dir > /sequitur-dict-de.ipa-r20180510
data/models/sequitur-dict-en.ipa-latest - > < your model dir > /sequitur-dict-en.ipa-r20180510ในการฝึกอบรมรุ่น Sequitur G2P ของคุณเองให้ใช้สคริปต์การส่งออกและรถไฟที่มีให้เช่น:
[guenter@dagobert speech]$ ./speech_sequitur_export.py -d dict-de.ipa
INFO:root:loading lexicon...
INFO:root:loading lexicon...done.
INFO:root:sequitur workdir data/dst/dict-models/dict-de.ipa/sequitur done.
[guenter@dagobert speech]$ ./speech_sequitur_train.sh dict-de.ipa
training sample: 322760 + 16988 devel
iteration: 0
..../speech_lex_edit.py word [word2 ...]เป็นคำสาปหลักที่ใช้ตัวแก้ไขพจนานุกรมเชิงโต้ตอบ มันจะสร้างรายการผู้สมัครโดยอัตโนมัติสำหรับคำศัพท์ใหม่โดยใช้ Sequitur G2P, Marytts และ Espeakng จากนั้นผู้ใช้สามารถแก้ไขรายการเหล่านี้ได้ด้วยตนเองหากจำเป็นและตรวจสอบพวกเขาโดยการฟังพวกเขาถูกสังเคราะห์ผ่าน Marytts ในเสียงที่แตกต่างกัน
ตัวแก้ไข Lexicon ยังรวมอยู่ในเครื่องมืออื่น ๆ อีกมากมายโดยเฉพาะอย่างยิ่ง speech_editor.py ซึ่งช่วยให้คุณสามารถถอดความทบทวนและเพิ่มคำที่ขาดหายไปสำหรับตัวอย่างเสียงใหม่ภายในเครื่องมือเดียว - ซึ่งแนะนำ
ฉันยังมีแนวโน้มที่จะทบทวนรายการพจนานุกรมแบบสุ่มเป็นครั้งคราว สำหรับการที่ฉันมีสคริปต์ขนาดเล็กซึ่งจะเลือก 20 รายการสุ่มที่ Sequitur G2P ไม่เห็นด้วยกับการถอดความปัจจุบันในพจนานุกรม:
./speech_lex_edit.py ` ./speech_lex_review.py `นอกจากนี้บางครั้งฉันใช้คำสั่งนี้เพื่อเพิ่มคำที่หายไปจากการถอดเสียงในโหมดแบทช์:
./speech_lex_edit.py ` ./speech_lex_missing.py ` สำหรับพจนานุกรมเยอรมันสามารถสกัดได้จาก Wiktionary เยอรมันโดยใช้ชุดสคริปต์ ในการทำเช่นนั้นขั้นตอนแรกคือการแยกชุดของรายการผู้สมัครจากการถ่ายโอนข้อมูล XML Wiktionary:
./wiktionary_extract_ipa.py สิ่งนี้จะส่งออกรายการที่แยกไปยัง data/dst/speech/de/dict_wiktionary_de.txt ตอนนี้เราจำเป็นต้องฝึกอบรมรุ่น Sequitur G2P ที่แปลรายการเหล่านี้เป็นสไตล์ IPA และชุดฟอนิมของเราเอง:
./wiktionary_sequitur_export.py
./wiktionary_sequitur_train.shในที่สุดเราแปลรายการและตรวจสอบพวกเขากับการคาดการณ์จากรุ่น Sequitur G2P ปกติของเรา:
./wiktionary_sequitur_gen.py สคริปต์นี้สร้างไฟล์เอาต์พุตสองไฟล์: data/dst/speech/de/dict_wiktionary_gen.txt มีรายการที่ยอมรับได้ data/dst/speech/de/dict_wiktionary_rej.txt ประกอบด้วยรายการที่ถูกปฏิเสธ
สูตรต่อไปนี้รถไฟรุ่น Kaldi สำหรับภาษาอังกฤษ
ก่อนที่จะใช้งานตรวจสอบให้แน่ใจว่าได้ปฏิบัติตามข้อกำหนดเบื้องต้นทั้งหมด (ดูด้านบนสำหรับคำแนะนำเกี่ยวกับสิ่งเหล่านี้):
generic_en_lang_model_small สร้างขึ้นvoxforge_en , librispeech , cv_corpus_v1 , ljspeech , m_ailabs_en , tedlium3 และ zamia_en ถูกติดตั้งแปลงและสแกนzamia_en_phone เลือก Augmented Corpora: voxforge_en_noisy , voxforge_en_phone , librispeech_en_noisy , librispeech_en_phone , cv_corpus_v1_noisy , cv_corpus_v1_phone , zamia_en_noisy ./speech_kaldi_export.py generic-en-small dict-en.ipa generic_en_lang_model_small voxforge_en librispeech zamia_en
cd data/dst/asr-models/kaldi/generic-en-small
./run-chain.shExport Run พร้อม Augmented Corpora รวมถึง:
./speech_kaldi_export.py generic-en dict-en.ipa generic_en_lang_model_small voxforge_en cv_corpus_v1 librispeech ljspeech m_ailabs_en tedlium3 zamia_en voxforge_en_noisy librispeech_noisy cv_corpus_v1_noisy cv_corpus_v1_phone zamia_en_noisy voxforge_en_phone librispeech_phone zamia_en_phoneสูตรต่อไปนี้รถไฟรุ่น Kaldi สำหรับภาษาเยอรมัน
ก่อนที่จะใช้งานตรวจสอบให้แน่ใจว่าได้ปฏิบัติตามข้อกำหนดเบื้องต้นทั้งหมด (ดูด้านบนสำหรับคำแนะนำเกี่ยวกับสิ่งเหล่านี้):
generic_de_lang_model_small สร้างขึ้นvoxforge_de , gspv2 , forschergeist , zamia_de , m_ailabs_de , cv_de ถูกติดตั้งแปลงและสแกนvoxforge_de_noisy , voxforge_de_phone , zamia_de_noisy และ zamia_de_phone ./speech_kaldi_export.py generic-de-small dict-de.ipa generic_de_lang_model_small voxforge_de gspv2 [ forschergeist zamia_de ...]
cd data/dst/asr-models/kaldi/generic-de-small
./run-chain.shExport Run พร้อม Augmented Corpora รวมถึง:
./speech_kaldi_export.py generic-de dict-de.ipa generic_de_lang_model_small voxforge_de gspv2 forschergeist zamia_de voxforge_de_noisy voxforge_de_phone zamia_de_noisy zamia_de_phone m_ailabs_de cv_deสำหรับเครื่องมือปรับโมเดล Kaldi แบบสแตนด์อโลนที่ไม่จำเป็นต้องมีการตั้งค่าการพูด Zamia ที่สมบูรณ์ให้ดูดู
Kaldi-Adapt-LM
โมเดล Kaldi ที่มีอยู่ (เช่นรุ่นที่เราให้ไว้สำหรับการดาวน์โหลด แต่ยังรวมถึงสิ่งที่คุณสามารถฝึกฝนได้ตั้งแต่เริ่มต้นโดยใช้สคริปต์ของเรา) สามารถปรับให้เข้ากับรูปแบบภาษา (โดยทั่วไปเฉพาะโดเมน) ไวยากรณ์ JSGF และไวยากรณ์ FST
นี่คือตัวอย่างวิธีการปรับโมเดลภาษาอังกฤษของเราให้เป็นคำสั่งง่ายๆและควบคุมไวยากรณ์ JSGF โปรดทราบว่านี่เป็นเพียงตัวอย่างของเล่น - สำหรับการใช้งานในโลกแห่งความเป็นจริงคุณอาจต้องการเพิ่มลูปฟอนิมขยะลงในไวยากรณ์หรือสร้างแบบจำลองภาษาที่มีการต้านทานเสียงรบกวนบางอย่างในทันที
นี่คือไวยากรณ์ที่เราจะใช้:
#JSGF V1.0;
grammar org.zamia.control;
public <control> = <wake> | <politeCommand> ;
<wake> = ( good morning | hello | ok | activate ) computer;
<politeCommand> = [ please | kindly | could you ] <command> [ please | thanks | thank you ];
<command> = <onOffCommand> | <muteCommand> | <volumeCommand> | <weatherCommand>;
<onOffCommand> = [ turn | switch ] [the] ( light | fan | music | radio ) (on | off) ;
<volumeCommand> = turn ( up | down ) the ( volume | music | radio ) ;
<muteCommand> = mute the ( music | radio ) ;
<weatherCommand> = (what's | what) is the ( temperature | weather ) ;
ขั้นตอนต่อไปคือการตั้งค่าการทดสอบการปรับแบบจำลอง Kaldi โดยใช้สคริปต์นี้:
./speech_kaldi_adapt.py data/models/kaldi-generic-en-tdnn_250-latest dict-en.ipa control.jsgf control-en ที่นี่ data/models/kaldi-generic-en-tdnn_250-latest เป็นแบบจำลองที่จะปรับตัว, dict-en.ipa control-en en.ipa เป็นพจนานุกรมที่จะใช้โดยรุ่นใหม่, control.jsgf เป็นไวยากรณ์ JSGF ที่เราต้องการให้โมเดลใหม่อยู่ที่นี่
ในการเรียกใช้การปรับตัวจริงให้เปลี่ยนเป็นไดเรกทอรีโมเดลและเรียกใช้สคริปต์การปรับตัวที่นั่น:
cd data/dst/asr-models/kaldi/control-en
./run-adaptation.sh ในที่สุดคุณสามารถสร้าง tarball จากรุ่นที่สร้างขึ้นใหม่:
cd ../../../../..
./speech_dist.sh control-en kaldi adapt./wav2letter_export.py -l en -v generic-en dict-en.ipa generic_en_lang_model_large voxforge_en cv_corpus_v1 librispeech ljspeech m_ailabs_en tedlium3 zamia_en voxforge_en_noisy librispeech_noisy cv_corpus_v1_noisy cv_corpus_v1_phone zamia_en_noisy voxforge_en_phone librispeech_phone zamia_en_phone
pushd data/dst/asr-models/wav2letter/generic-en/
bash run_train.sh./wav2letter_export.py -l de -v generic-de dict-de.ipa generic_de_lang_model_large voxforge_de gspv2 forschergeist zamia_de voxforge_de_noisy voxforge_de_phone zamia_de_noisy zamia_de_phone m_ailabs_de cv_de
pushd data/dst/asr-models/wav2letter/generic-de/
bash run_train.shสร้างกรณีทบทวนอัตโนมัติ:
./wav2letter_auto_review.py -l de w2l-generic-de-latest gspv2เรียกใช้:
pushd tmp/w2letter_auto_review
bash run_auto_review.sh
popdใช้ผลลัพธ์:
./wav2letter_apply_review.pyหมายเหตุบางส่วนเกี่ยวกับวิธีการแบ่งกลุ่มและถอดเสียงหนังสือเสียงหรือแหล่งเสียงอื่น ๆ (เช่นจาก Librivox) โดยใช้สคริปต์ ABOOK ที่มีให้:
พ.ศ.ม.
```bash
ffmpeg -i foo.mp3 foo.wav
```
MKV
mkvextract tracks foo.mkv 0:foo.ogg
opusdec foo.ogg foo.wavsox foo.wav -r 16000 -c 1 -b 16 foo_16m.wavเครื่องมือนี้จะใช้การตรวจจับความเงียบเพื่อค้นหาจุดตัดที่ดี คุณอาจต้องการปรับการตั้งค่าเพื่อให้ได้ความสมดุลที่ดีของเซกเมนท์ แต่มีคำไม่กี่คำ
./abook-segment.py foo_16m.wavการตั้งค่า:
[guenter@dagobert speech]$ ./abook-segment.py -h
Usage: abook-segment.py [options] foo.wav
Options:
-h, --help show this help message and exit
-s SILENCE_LEVEL, --silence-level=SILENCE_LEVEL
silence level (default: 2048 / 65536)
-l MIN_SIL_LENGTH, --min-sil-length=MIN_SIL_LENGTH
minimum silence length (default: 0.07s)
-m MIN_UTT_LENGTH, --min-utt-length=MIN_UTT_LENGTH
minimum utterance length (default: 2.00s)
-M MAX_UTT_LENGTH, --max-utt-length=MAX_UTT_LENGTH
maximum utterance length (default: 9.00s)
-o OUTDIRFN, --out-dir=OUTDIRFN
output directory (default: abook/segments)
-v, --verbose enable debug outputโดยค่าเริ่มต้นกลุ่มผลลัพธ์จะสิ้นสุดใน Abook/Segments
เครื่องมือการถอดความรองรับลำโพงมากถึงสองลำซึ่งคุณสามารถระบุได้บนบรรทัดคำสั่ง แพคเกจ voxforge ที่ได้จะจบลงใน Abook/Out โดยค่าเริ่มต้น
./abook-transcribe.py -s speaker1 -S speaker2 abook/segments/หมายเหตุบางส่วนเกี่ยวกับวิธีการแบ่งส่วนและถอดความเสียงกึ่งอัตโนมัติหรือแหล่งเสียงอื่น ๆ (เช่นจาก Librivox) โดยใช้ Kaldi:
สคริปต์ของเราพึ่งพาเค้าโครงไดเรกทอรีคงที่ เนื่องจากการแบ่งส่วนของการบันทึก Librivox เป็นหนึ่งในแอปพลิเคชั่นหลักของสคริปต์เหล่านี้คำศัพท์ของหนังสือและส่วนต่าง ๆ จะถูกนำมาใช้ที่นี่ สำหรับแต่ละส่วนของหนังสือสองไฟล์ต้นฉบับที่จำเป็น: ไฟล์คลื่นที่มีเสียงและไฟล์ข้อความที่มีการถอดเสียง
รูปแบบการตั้งชื่อคงที่ใช้สำหรับผู้ที่แสดงโดยตัวอย่างนี้:
ABOOK/IN/LIBRIVOX/11442-TOTEN-SEELEN/EVAK-11442-TOTEN-SEELEN-1.TXT ABOOK/IN/LIBRIVOX/11442-TOTEN-SEELEN/EVAK-11442-TOTEN-SEELEN-1.WAV ABOOK/IN/LIBRIVOX/11442-TOTEN-SEELEN/EVAK-11442-TOTEN-SEELEN-2.TXT ABOOK/IN/LIBRIVOX/11442-TOTEN-SEELEN/EVAK-11442-TOTEN-SEELEN-2.WAV -
สคริปต์ abook-librivox.py มีไว้เพื่อช่วยในการดึงการบันทึก Librivox และตั้งค่าโครงสร้างไดเรกทอรี โปรดทราบว่าสำหรับตอนนี้เครื่องมือจะไม่ดึงการถอดเสียงโดยอัตโนมัติ แต่จะสร้างไฟล์. txt ที่ว่างเปล่า (ตามรูปแบบการตั้งชื่อ) ซึ่งคุณจะต้องกรอกด้วยตนเอง
เครื่องมือจะแปลงเสียงที่ดึงมาเป็นรูปแบบ 16KHz mono WAV ตามที่กำหนดโดยสคริปต์การแบ่งส่วน หากคุณตั้งใจจะแบ่งส่วนวัสดุจากแหล่งอื่น ๆ ตรวจสอบให้แน่ใจว่าได้แปลงเป็นรูปแบบนั้น สำหรับคำแนะนำเกี่ยวกับเครื่องมือที่ใช้สำหรับขั้นตอนนี้โปรดดูคำแนะนำการแบ่งกลุ่มด้วยตนเองในส่วนก่อนหน้า
หมายเหตุ : เนื่องจากกระบวนการ Kaldi ถูกขนานสำหรับการแบ่งส่วนมวลอย่างน้อย 4 ไฟล์เสียงและพร้อมพรอมต์จึงจำเป็นสำหรับกระบวนการในการทำงาน
เครื่องมือนี้จะโทเค็นการถอดเสียงและตรวจจับโทเค็น OOV จากนั้นสามารถแทนที่หรือเพิ่มลงในพจนานุกรม:
./abook-preprocess-transcript.py abook/in/librivox/11442-toten-Seelen/evak-11442-toten-Seelen-1.txtสำหรับการแบ่งส่วนอัตโนมัติในการทำงานเราจำเป็นต้องมีโมเดล GMM ที่ปรับให้เข้ากับพจนานุกรมปัจจุบัน (ซึ่งน่าจะต้องขยายในระหว่างการประมวลผลการถอดเสียงล่วงหน้า) บวกใช้รูปแบบภาษาที่ครอบคลุมพรอมต์
ก่อนอื่นเราสร้างโมเดลภาษาที่ปรับเพื่อจุดประสงค์ของเรา:
./abook-sentences.py abook/in/librivox/11442-toten-Seelen/ * .prompt
./speech_build_lm.py abook_lang_model abook abook abook parole_deตอนนี้เราสามารถสร้างโมเดลที่ดัดแปลงได้โดยใช้รูปแบบภาษานี้และ DICT ปัจจุบันของเรา:
./speech_kaldi_adapt.py data/models/kaldi-generic-de-tri2b_chain-latest dict-de.ipa data/dst/lm/abook_lang_model/lm.arpa abook-de
pushd data/dst/asr-models/kaldi/abook-de
./run-adaptation.sh
popd
./speech_dist.sh -c abook-de kaldi adapt
tar xfvJ data/dist/asr-models/kaldi-abook-de-adapt-current.tar.xz -C data/models/ต่อไปเราจำเป็นต้องสร้างโครงสร้างไดเรกทอรี Kaldi และไฟล์สำหรับการแบ่งส่วนอัตโนมัติ:
./abook-kaldi-segment.py data/models/kaldi-abook-de-adapt-current abook/in/librivox/11442-toten-Seelenตอนนี้เราสามารถเรียกใช้การแบ่งส่วน:
pushd data/dst/speech/asr-models/kaldi/segmentation
./run-segmentation.sh
popd ในที่สุดเราสามารถดึงผลลัพธ์การแบ่งส่วนในรูปแบบ voxforge:
./abook-kaldi-retrieve.py abook/in/librivox/11442-toten-Seelen/Zamia-TTS เป็นโครงการทดลองที่พยายามฝึกฝนเสียง TTS ตามข้อมูล (ตรวจสอบ) ข้อมูลการพูดของ Zamia ดาวน์โหลดที่นี่:
https://goofy.zamia.org/zamia-speech/tts/
ส่วนนี้อธิบายถึงวิธีการฝึกฝนเสียงสำหรับการใช้งาน Tacotron 2 ของ Nvidia เสียงที่ได้จะมีอัตราตัวอย่าง 16kHz เนื่องจากเป็นอัตราตัวอย่างเริ่มต้นที่ใช้สำหรับการฝึกอบรมแบบจำลองการพูดของ Zamia ASR ซึ่งหมายความว่าคุณจะต้องใช้โมเดล Waveglow 16KHz ซึ่งคุณสามารถหาได้พร้อมกับเสียงที่ผ่านการฝึกอบรมและตัวอย่างคลื่นที่นี่:
https://goofy.zamia.org/zamia-speech/tts/tacotron2/
ตอนนี้ด้วยการฝึกอบรมโมเดล Tacotron 2 นั้นค่อนข้างตรงไปตรงมา ขั้นตอนแรกคือการส่งออก FileLists สำหรับเสียงที่คุณต้องการฝึกอบรมเช่น:
./speech_tacotron2_export.py -l en -o ../torch/tacotron2/filelists m_ailabs_en mailabselliotmillerจากนั้นเปลี่ยนเป็นไดเรกทอรีการฝึกอบรม Tacotron 2 ของคุณ
cd ../torch/tacotron2และระบุรายการไฟล์อัตราการสุ่มตัวอย่างและขนาดแบทช์ใน '' hparams.py '':
diff --git a/hparams.py b/hparams.py
index 8886f18..75e89c9 100644
--- a/hparams.py
+++ b/hparams.py
@@ -25,15 +25,19 @@ def create_hparams(hparams_string=None, verbose=False):
# Data Parameters #
################################
load_mel_from_disk=False,
- training_files='filelists/ljs_audio_text_train_filelist.txt',
- validation_files='filelists/ljs_audio_text_val_filelist.txt',
- text_cleaners=['english_cleaners'],
+ training_files='filelists/mailabselliotmiller_train_filelist.txt',
+ validation_files='filelists/mailabselliotmiller_val_filelist.txt',
+ text_cleaners=['basic_cleaners'],
################################
# Audio Parameters #
################################
max_wav_value=32768.0,
- sampling_rate=22050,
+ #sampling_rate=22050,
+ sampling_rate=16000,
filter_length=1024,
hop_length=256,
win_length=1024,
@@ -81,7 +85,8 @@ def create_hparams(hparams_string=None, verbose=False):
learning_rate=1e-3,
weight_decay=1e-6,
grad_clip_thresh=1.0,
- batch_size=64,
+ # batch_size=64,
+ batch_size=16,
mask_padding=True # set model's padded outputs to padded values
)
และเริ่มการฝึกอบรม:
python train.py --output_directory=elliot --log_directory=elliot/logs./ztts_prepare.py -l en m_ailabs_en mailabselliotmiller elliot./ztts_train.py -v elliot 2>&1 | tee train_elliot.log ในการสร้าง tarballs จากแบบจำลองให้ใช้สคริปต์ speech-dist.sh เช่น:
./speech_dist.sh generic-en kaldi tdnn_sp
สคริปต์ของฉันเองรวมถึงข้อมูลที่ฉันสร้าง (เช่นพจนานุกรมและการถอดเสียง) คือ LGPLV3 ที่ได้รับอนุญาตเว้นแต่จะระบุไว้เป็นอย่างอื่นในส่วนหัวลิขสิทธิ์ของสคริปต์
สคริปต์และไฟล์บางไฟล์ขึ้นอยู่กับผลงานของผู้อื่นในกรณีเหล่านั้นเป็นความตั้งใจของฉันที่จะทำให้ใบอนุญาตเดิมเหมือนเดิม โปรดตรวจสอบให้แน่ใจว่าได้ตรวจสอบส่วนหัวลิขสิทธิ์ภายในสำหรับข้อมูลเพิ่มเติม