Целью проекта является переоборудование автоматического исследования распознавания речи. Вначале вы можете загрузить готовый к использованию трубопровод с предварительно обученной моделью. Получите выгоду от нетерпеливого 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% (результаты недавних оценки можно найти здесь). Оба они используйте модель внешнего языка, чтобы повысить результаты. Для сравнения, люди достигают 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В противном случае клонировать код и создать новую среду через Conda:
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Фундаментальные репозитории:
Кроме того, вы можете исследовать GitHub, используя ключевые фразы, такие как ASR , DeepSpeech или Speech-To-Text . Список wer_are_we, попытка отслеживания состояний искусства, также может быть полезна.