プロジェクトの目的は、自動音声認識研究を蒸留することです。最初は、事前に訓練されたモデルを使用して、すぐに使用できるパイプラインをロードできます。熱心なTensorFlow 2.0恩恵を受け、モデルの重み、活性化、または勾配を自由に監視します。
import automatic_speech_recognition as asr
file = 'to/test/sample.wav' # sample rate 16 kHz, and 16 bit depth
sample = asr . utils . read_audio ( file )
pipeline = asr . load ( 'deepspeech2' , lang = 'en' )
pipeline . model . summary () # TensorFlow model
sentences = pipeline . predict ([ sample ])英語をサポートしています(Open Seq2Seqのおかげです)。英語のベンチマークLibrispeech Dev-Cleanの評価結果がテーブルにあります。参照するために、Deepspeech(Mozilla)は約7.5%の状態を達成しますが、最先端(RWTH Aachen University)は2.3%werに相当します(最近の評価結果はここにあります)。両方とも、外部言語モデルを使用して結果を高めます。それに比べて、人間はここで5.83%を達成しました(Librispeech Dev-Clean)
| モデル名 | デコーダ | wer-dev |
|---|---|---|
deepspeech2 | よく深い | 6.71 |
まもなく、パイプラインを少し調整する必要があることがわかります。 CTCパイプラインをご覧ください。パイプラインは、ニューラルネットワークモデルをすべての非微分変換に接続する責任があります(特徴抽出または予測解除)。パイプラインコンポーネントは独立しています。それらをニーズに合わせて調整することができます。たとえば、より洗練された機能抽出、異なるデータ増強を使用するか、言語モデルデコーダー(静的Nグラムまたは巨大なトランス)を追加できます。戦略を使用してトレーニングを配布するか、混合精度ポリシーを実験するように、さらに多くのことを行うことができます。
import numpy as np
import tensorflow as tf
import automatic_speech_recognition as asr
dataset = asr . dataset . Audio . from_csv ( 'train.csv' , batch_size = 32 )
dev_dataset = asr . dataset . Audio . from_csv ( 'dev.csv' , batch_size = 32 )
alphabet = asr . text . Alphabet ( lang = 'en' )
features_extractor = asr . features . FilterBanks (
features_num = 160 ,
winlen = 0.02 ,
winstep = 0.01 ,
winfunc = np . hanning
)
model = asr . model . get_deepspeech2 (
input_dim = 160 ,
output_dim = 29 ,
rnn_units = 800 ,
is_mixed_precision = False
)
optimizer = tf . optimizers . Adam (
lr = 1e-4 ,
beta_1 = 0.9 ,
beta_2 = 0.999 ,
epsilon = 1e-8
)
decoder = asr . decoder . GreedyDecoder ()
pipeline = asr . pipeline . CTCPipeline (
alphabet , features_extractor , model , optimizer , decoder
)
pipeline . fit ( dataset , dev_dataset , epochs = 25 )
pipeline . save ( '/checkpoint' )
test_dataset = asr . dataset . Audio . from_csv ( 'test.csv' )
wer , cer = asr . evaluate . calculate_error_rates ( pipeline , test_dataset )
print ( f'WER: { wer } CER: { cer } ' )PIPを使用できます。
pip install automatic-speech-recognitionそれ以外の場合は、コードをクローンし、コンドラを介して新しい環境を作成します。
git clone https://github.com/rolczynski/Automatic-Speech-Recognition.git
conda env create -f=environment.yml # or use: environment-gpu.yml
conda activate Automatic-Speech-Recognition基本的なリポジトリ:
さらに、 ASR 、 DeepSpeech 、 Speech-To-Textなどのキーフレーズを使用してGitHubを探索できます。芸術の状態を追跡する試みであるwer_are_weのリストも役立ちます。