Tensorflowasr
Tensorflow 2の配座異性版に基づくエンドツーエンドの音声認識モデル、およびCPUのRTF(リアルタイムレート)は約0.1です
現在のブランチはV2バージョンで、CTC+翻訳構造です
使用やフィードバックバグへようこそ
古いバージョンのV1バージョンをご覧ください
Aishell-1トレーニング結果:
オフラインの結果
| 名前 | パラメーター数 | 中国のcer | トレーニングラウンドの数 | オンライン/オフライン | テストデータ | デコード方法 |
|---|---|---|---|---|---|---|
| ウェネット(コンフォーマー) | 9.5m | 6.48% | 100 | オフラインオフライン | aishell1-test | CTC_GREEDY |
| ウェネット(トランス) | 9.7m | 8.68% | 100 | オフラインオフライン | aishell1-test | CTC_GREEDY |
| ウェネット(パラフォーマー) | 9.0m | 6.99% | 100 | オフラインオフライン | aishell1-test | paraformer_greeedy |
| funasr(パラフォーマー) | 9.5m | 6.37% | 100 | オフラインオフライン | aishell1-test | paraformer_greeedy |
| funasr(コンフォーマー) | 9.5m | 6.64% | 100 | オフラインオフライン | aishell1-test | CTC_GREEDY |
| funasr(e_branchformer) | 10.1m | 6.65% | 100 | オフラインオフライン | aishell1-test | CTC_GREEDY |
| レポ(conpormerctc) | 10.1m | 6.8% | 100 | オフラインオフライン | aishell1-test | CTC_GREEDY |
ストリーミング結果
| 名前 | パラメーター数 | 中国のcer | トレーニングラウンドの数 | オンライン/オフライン | テストデータ | デコード方法 |
|---|---|---|---|---|---|---|
| WENET(U2 ++配座異性体) | 10.6m | 8.18% | 100 | オンライン | aishell1-test | CTC_GREEDY |
| WENET(U2 ++トランス) | 10.3m | 9.88% | 100 | オンライン | aishell1-test | CTC_GREEDY |
| レポ(StreamingConformerctc) | 10.1m | 7.2% | 100 | オンライン | aishell1-test | CTC_GREEDY |
| レポ(ChunkConformer) | 10.7m | 8.9% | 100 | オンライン | aishell1-test | CTC_GREEDY |
TTS:https://github.com/z-yq/tensorflowtts
NLU: -
ボット: -
データがなければ、一定レベルのASR効果を達成できます。
ASRのTTS:トレーニングデータはAishell1とAishell3であり、データ型はASRにより適しています。
ヒント:
合計で500の音があります
中国語でのみサポートされています
合成されるテキストに句読点がある場合は、手動で削除してください
一時停止を追加する場合は、テキストの中央にSILを追加します
ステップ1:Text.list、EGSという名前の場合、合成するテキストのリストを準備します。
这是第一句话
这是第二句话
这是一句sil有停顿的话
...
ステップ2:モデルをダウンロードします
リンク:https://pan.baidu.com/s/1den1pmj4olkrkw8ceqruna抽出コード:C0TP
両方をダウンロードしてディレクトリに入れる必要があります。/augmentations/tts_for_asr/models
ステップ3:次に、ルートディレクトリでスクリプトを実行します。
python . / augmentations / tts_for_asr / tts_augment . py - f text . list - o save_dir - - voice_num 10 - - vc_num 3で:
-fは、step1によって作成されたリストです
-o合成、推奨される絶対パスを保存するために使用されるコーパスパス。
-voice_num各文を合成するためにいくつのトーンを使用するか
-vc_num文ごとにトーン変換で何回強化できるか
実行が完了すると、WAVSディレクトリとautterance.txtが-oの下で生成されます
Librosaライブラリを参照すると、TF2を使用して音声スペクトル特徴抽出の層が実装されています。
または、パラメーターの量が少ないリーフを使用できます。
使用:
mel_layer_type: Melspectrogram #Spectrogram/leaf
trainable_kernel: True #support train model,not recommend
ONNXに基づくCPPプロジェクトが更新されました。
詳細については、cppinference onnxを参照してください
onnxに基づくpython推論スキーム、詳細についてはpython推論を参照してください
現在、ストリーミングコンフォーマー構造をサポートしています。
現在、実装するには2つの方法があります。
ブロックコンフォーマー +グローバルCTC
チャンクコンフォーマー + CTCピッカー
すべての結果はAISHELL TESTデータセットでテストされました。
RTF (リアルタイムレート)は、 CPUシングルコアデコードタスクでテストされています。
午前:
| モデル名 | メルレイヤー(使用/電車) | リンク | コード | データを訓練します | 音素CER(%) | パラメージサイズ | RTF |
|---|---|---|---|---|---|---|---|
| compormerctc(s) | true/false | pan.baidu.com/s/1k6miy1ynglrt0cb-xsqqag | 8S53 | Aishell-1(50エポック) | 6.4 | 10m | 0.056 |
| StreamingConformerctc | true/false | pan.baidu.com/s/1rc0x7loiexaac0gnhurkhw | ZWH9 | Aishell-1(50エポック) | 7.2 | 15m | 0.08 |
| ChunkConformer | true/false | pan.baidu.com/s/1o_x677wuywnld-8snbydxg | ujmg | Aishell-1(50エポック) | 11.4 | 15m | 0.1 |
Vad:
| モデル名 | リンク | コード | データを訓練します | パラメージサイズ | RTF |
|---|---|---|---|---|---|
| 8k_online_vad | pan.baidu.com/s/1ag9vwtxiqw4c2agf-6nigg | OFC9 | OpenSLRオープンソースデータ | 80k | 0.0001 |
PUNC:
| モデル名 | リンク | コード | データを訓練します | acc | パラメージサイズ | RTF |
|---|---|---|---|---|---|---|
| Puncmodel | pan.baidu.com/s/1gtvrkyie2cabfiqbn9bhaw | 515T | NLPオープンソースデータ | 95% | 600k | 0.0001 |
使用:
モデルをtest_asr.pyでonnxファイルに変換し、pythoninferenceに入れます
参加、話し合い、共有の問題へようこそ。 グループに200人以上の人がいる場合は、「Tensorflowasr」というメモを追加してください。

最新のアップデート
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 train_listとtest_listを準備します。
asr_train_list形式では、「 t」がタップします。プログラムを使用してテキストファイルに書き込むことをお勧めします。パス + ' t' +テキスト
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 ' ) :たとえば、取得したtrain.list:
/opt/data/test.wav 这个是一个例子
......
以下は、VADおよび句読点回復のためのトレーニングデータの準備形式(不要)です。
vad_train_list形式:
wav_path1
wav_path2
……
例えば:
/opt/data/test.wav
VADトレーニングの内部処理ロジックは、トレーニングサンプルとしてエネルギーに依存しているため、準備するトレーニングコーパスが静かな状態で記録されていることを確認してください。
PUNC_TRAIN_LISTフォーマット:
text1
text2
……
LMと同様に、各行のテキストには句読点が含まれています。
例えば:
这是:一个例子哦。 √(正确格式)
这是:“一个例子哦”。 ×(错误格式)
这是:一个例子哦“。 ×(错误格式)
句読点回復モデルの支援トレーニングのために、Bertの事前に訓練されたモデルをダウンロードしてください。
https://pan.baidu.com/s/1_HDAhfGZfNhXS-cYoLQucA extraction code: 4hsa
構成ファイルam_data.yml (./asr/configs)を変更してトレーニングオプションを設定し、モデルyaml (:./asr/configs/conformer.ymlなど)のnameパラメーターを変更してモデル構造を選択します。
次に、コマンドを実行します。
python train_asr.py --data_config ./asr/configs/am_data.yml --model_config ./asr/configs/ConformerS.ymlテストsttたい場合は、 ./test_asr.pyで書かれたデモを参照できます。
python . / test_asr . py テスターを使用して大量のデータをテストして、モデルのパフォーマンスを確認することもできます。
埋め込む:
python eval_am.py --data_config ./asr/configs/am_data.yml --model_config ./asr/configs/ConformerS.ymlこのスクリプトには、Ser/Cer/del/ins/subのいくつかの指標が表示されます
6. VADまたは句読点回復モデルを訓練するには、上記の手順を参照してください。
独自の音素を使用したい場合は、 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 <S>と</S>から始めることを忘れないでください。
<S>
</S>
de
shì
……
次の優れたプロジェクトを参照してください。
https://github.com/usimarit/tiramisuasr
https://github.com/noahchalifour/warp-transducer
https://github.com/paddlepaddle/deepspeech
https://github.com/baidu-research/warp-ctc
このプロジェクトを学術研究、商業製品生産などに使用してくれてありがとう。このプロジェクトを商品として取引することは禁止されています。
全体として、ここのほぼモデルは、世界のすべての国に対してApache 2.0の下で認可されています。
このプロジェクトを学術研究、商業製品生産に使用して、制限されていない商業的および非営利的な使用を許可してくれてありがとう。
ただし、このプロジェクトを商品として取引することは禁止されています。