TensorFlowasr
Model pengenalan ucapan end-to-end berdasarkan versi konformer TensorFlow 2, dan RTF CPU (tingkat waktu nyata) adalah sekitar 0,1
Cabang saat ini adalah versi V2, yang merupakan struktur CTC+Terjemahan
Selamat datang untuk menggunakan dan umpan balik bug
Silakan lihat versi V1 dari versi lama
Hasil Pelatihan Aishell-1:
Hasil offline
| Nama | Kuantitas parameter | CER CINA | Jumlah putaran pelatihan | Online/Offline | Data uji | Metode decoding |
|---|---|---|---|---|---|---|
| Wenet (konformer) | 9.5m | 6,48% | 100 | Offline offline | uji Aishell1 | ctc_greeedy |
| Wenet (Transformer) | 9.7m | 8,68% | 100 | Offline offline | uji Aishell1 | ctc_greeedy |
| Wenet (paraformer) | 9.0m | 6,99% | 100 | Offline offline | uji Aishell1 | paraformer_greeedy |
| Funasr (paraformer) | 9.5m | 6,37% | 100 | Offline offline | uji Aishell1 | paraformer_greeedy |
| Funasr (konformer) | 9.5m | 6,64% | 100 | Offline offline | uji Aishell1 | ctc_greeedy |
| Funasr (e_branchformer) | 10.1m | 6,65% | 100 | Offline offline | uji Aishell1 | ctc_greeedy |
| repo (conformerctc) | 10.1m | 6,8% | 100 | Offline offline | uji Aishell1 | ctc_greeedy |
Hasil streaming
| Nama | Kuantitas parameter | CER CINA | Jumlah putaran pelatihan | Online/Offline | Data uji | Metode decoding |
|---|---|---|---|---|---|---|
| Wenet (konformer u2 ++) | 10.6m | 8,18% | 100 | On line | uji Aishell1 | ctc_greeedy |
| Wenet (U2 ++ Transformer) | 10.3m | 9,88% | 100 | On line | uji Aishell1 | ctc_greeedy |
| repo (streamingConformerCTC) | 10.1m | 7,2% | 100 | On line | uji Aishell1 | ctc_greeedy |
| Repo (ChunkConformer) | 10.7m | 8,9% | 100 | On line | uji Aishell1 | ctc_greeedy |
TTS: https://github.com/z-yq/tensorflowtts
NLU: -
Bot: -
Tanpa data, Anda dapat mencapai tingkat efek ASR tertentu.
TTS untuk ASR: Data pelatihan adalah Aishell1 dan Aishell3, dan tipe data lebih cocok untuk ASR.
Tips:
Total ada 500 suara
Hanya didukung dalam bahasa Cina
Jika teks yang akan disintesis memiliki tanda baca, harap hapus secara manual
Jika Anda ingin menambahkan jeda, tambahkan sil di tengah teks
Langkah1: Siapkan daftar teks yang akan disintesis, jika bernama Text.list, misalnya:
这是第一句话
这是第二句话
这是一句sil有停顿的话
...
Langkah2: Unduh modelnya
Tautan: https://pan.baidu.com/s/1den1pmj4olkrkw8ceqruna Kode Ekstraksi: C0TP
Keduanya perlu diunduh dan dimasukkan ke dalam direktori./augmentations/tts_for_asr/models
Langkah3: Kemudian jalankan skrip di direktori root:
python . / augmentations / tts_for_asr / tts_augment . py - f text . list - o save_dir - - voice_num 10 - - vc_num 3di dalam:
-f adalah daftar yang disiapkan oleh Langkah1
-O Jalur corpus yang digunakan untuk menyimpan sintetis, jalur absolut yang disarankan.
--voice_num berapa banyak nada yang digunakan untuk mensintesis setiap kalimat
--vc_num berapa kali dapat ditingkatkan dengan konversi nada per kalimat
Setelah pelarian selesai, direktori WAVS dan ucapan. Txt akan dihasilkan di bawah -o
Mengacu pada perpustakaan Librosa, lapisan ekstraksi fitur spektrum wicara diimplementasikan menggunakan TF2.
Atau Anda dapat menggunakan daun dengan jumlah parameter yang lebih kecil.
menggunakan:
mel_layer_type: Melspectrogram #Spectrogram/leaf
trainable_kernel: True #support train model,not recommend
Proyek CPP berdasarkan ONNX telah diperbarui.
Lihat CPPInference Onnx untuk detailnya
Skema Inferensi Python Berdasarkan Onnx, lihat Python Inference untuk detailnya
Sekarang mendukung streaming struktur konformer.
Saat ini ada dua cara untuk mengimplementasikan:
Blok Conformer + Global CTC
Chunk Conformer + CTC Picker
Semua hasil diuji pada dataset AISHELL TEST .
RTF (tingkat waktu nyata) diuji pada tugas decoding core-core CPU .
PAGI:
| Nama model | Mel Layer (Use/Train) | link | kode | Data melatih | foneme cer (%) | Ukuran params | RTF |
|---|---|---|---|---|---|---|---|
| Conformerctc (s) | Benar/Salah | pan.baidu.com/s/1k6miy1ynglrt0cb-xsqqag | 8S53 | Aishell-1 (50 zaman) | 6.4 | 10m | 0,056 |
| StreamingConformerCTC | Benar/Salah | pan.baidu.com/s/1rc0x7loiexaac0gnhurkhw | zwh9 | Aishell-1 (50 zaman) | 7.2 | 15m | 0,08 |
| ChunkConformer | Benar/Salah | pan.baidu.com/s/1o_x677wuywnld-8snbydxg | Ujmg | Aishell-1 (50 zaman) | 11.4 | 15m | 0.1 |
VAD:
| Nama model | link | kode | Data melatih | Ukuran params | RTF |
|---|---|---|---|---|---|
| 8k_online_vad | pan.baidu.com/s/1ag9vwtxiqw4c2agf-6nigg | OFC9 | OpenSlr Data Sumber Terbuka | 80K | 0,0001 |
Punc:
| Nama model | link | kode | Data melatih | ACC | Ukuran params | RTF |
|---|---|---|---|---|---|---|
| Puncmodel | pan.baidu.com/s/1gtvrkyie2cabfiqbn9bhaw | 515t | Data sumber terbuka NLP | 95% | 600K | 0,0001 |
menggunakan:
Konversi model menjadi file onnx di test_asr.py dan masukkan ke dalam pythoninference
Selamat datang untuk bergabung, mendiskusikan dan berbagi masalah. Jika Anda memiliki lebih dari 200 orang dalam grup, silakan tambahkan catatan "TensorFlowasr".

Pembaruan terbaru
pip install tensorflow-gpu 可以参考https://www.bilibili.com/read/cv14876435if you need use the default phonemeFor LAS structure,pip install tensorflow-addonspip install rir-generatorpip install onnxruntime or pip install onnxruntime-gpu Siapkan train_list dan test_list.
format asr_train_list , di mana ' t' tap, disarankan untuk menulis ke file teks menggunakan program, path + ' t' + teks
wav_path = "xxx/xx/xx/xxx.wav"
wav_label = "这是个例子"
with open ( 'train.list' , 'w' , encoding = 'utf-8' ) as f :
f . write ( wav_path + ' t ' + wav_label + ' n ' ) :Misalnya, train.list diperoleh:
/opt/data/test.wav 这个是一个例子
......
Berikut ini adalah format persiapan data pelatihan (tidak diperlukan) untuk pemulihan VAD dan tanda baca:
Format vad_train_list :
wav_path1
wav_path2
……
Misalnya:
/opt/data/test.wav
Logika pemrosesan internal pelatihan VAD bergantung pada energi sebagai sampel pelatihan, jadi pastikan bahwa corpus pelatihan yang Anda persiapkan dicatat dalam kondisi yang tenang.
format punc_train_list :
text1
text2
……
Dalam format yang sama seperti LM, teks pada setiap baris berisi tanda baca.
Misalnya:
这是:一个例子哦。 √(正确格式)
这是:“一个例子哦”。 ×(错误格式)
这是:一个例子哦“。 ×(错误格式)
Unduh model pra-terlatih Bert untuk pelatihan berbantuan dari model pemulihan tanda baca.
https://pan.baidu.com/s/1_HDAhfGZfNhXS-cYoLQucA extraction code: 4hsa
Ubah file konfigurasi am_data.yml (./asr/configs) untuk mengatur beberapa opsi pelatihan, dan memodifikasi parameter name dalam model YAML (seperti: ./asr/configs/conformer.yml) untuk memilih struktur model.
Kemudian jalankan perintah:
python train_asr.py --data_config ./asr/configs/am_data.yml --model_config ./asr/configs/ConformerS.yml Saat Anda ingin menguji, Anda dapat merujuk pada demo stt ditulis di ./test_asr.py .
python . / test_asr . py Anda juga dapat menggunakan tester untuk menguji data dalam jumlah besar untuk memverifikasi kinerja model Anda:
melaksanakan:
python eval_am.py --data_config ./asr/configs/am_data.yml --model_config ./asr/configs/ConformerS.ymlScript ini akan menampilkan beberapa indikator Ser/Cer/Del/Ins/Sub
6. Untuk melatih model pemulihan VAD atau tanda baca, silakan merujuk ke langkah -langkah di atas.
Jika Anda ingin menggunakan fonem Anda sendiri, Anda memerlukan metode konversi yang sesuai di am_dataloader.py .
def init_text_to_vocab ( self ): #keep the name
def text_to_vocab_func ( txt ):
return your_convert_function
self . text_to_vocab = text_to_vocab_func #here self.text_to_vocab is a function,not a call Jangan lupa untuk memulai dengan <S> dan </S> , misalnya:
<S>
</S>
de
shì
……
Lihat proyek -proyek luar biasa berikut:
https://github.com/usimarit/tiramisuasr
https://github.com/noahchalifour/warp-transducer
https://github.com/paddlepaddle/deepspeech
https://github.com/baidu-research/warp-ctc
Kami mengizinkan dan berterima kasih karena telah menggunakan proyek ini untuk penelitian akademik, produksi produk komersial, dll., Tetapi dilarang untuk memperdagangkan proyek ini sebagai komoditas.
Secara keseluruhan, hampir model di sini dilisensikan di bawah Apache 2.0 untuk semua negara di dunia.
Izinkan dan terima kasih telah menggunakan proyek ini untuk penelitian akademik, produksi produk komersial, memungkinkan penggunaan komersial dan non-komersial yang tidak dibatasi.
Namun, dilarang untuk memperdagangkan proyek ini sebagai komoditas.