Почему результаты этой Python-программы DeepSpeech отличаются от результатов, которые я получаю из интерфейса командной строки?
Я изучаю движок Mozilla DeepSpeech Speech-To-Text. У меня не было проблем с работой интерфейса командной строки, но интерфейс Python, похоже, ведет себя по-другому. Когда я бегу:
deepspeech --model models/output_graph.pb --alphabet models/alphabet.txt --audio testFile3.wav
На PCM, 16 бит, моно 48000 Гц.wav файл, созданный с помощью sox, я получаю следующее:
test test apple benana
Минус "бенан", когда я имел в виду "банан", кажется, что он работает нормально, наряду с другими файлами, на которых я его тестировал. Проблема возникает, когда я пытаюсь использовать следующий код из этого учебника:
import deepspeech
import scipy.io.wavfile as wav
import sys
ds=deepspeech.Model(sys.argv[1],26,9,sys.argv[2],500)
fs,audio=wav.read(sys.argv[3])
processed_data=ds.stt(audio,fs)
print(processed_data)
Я запускаю код с помощью следующей команды:
python3 -Bi test.py models/output_graph.pb models/alphabet.txt testFile3.wav
В зависимости от конкретного файла я получаю разные четырехсимвольные ответы. Ответ, который я получил от этого конкретного файла, был 'hahm'
, но 'hmhm'
а также ' eo'
также распространены. Изменение параметров модели (25, 9 и 500), по-видимому, не меняет выход.
2 ответа
Просто включите ваш trie
а также lm.binary
файлы и попробуйте еще раз.
from deepspeech import Model
import scipy.io.wavfile
BEAM_WIDTH = 500
LM_WEIGHT = 1.50
VALID_WORD_COUNT_WEIGHT = 2.25
N_FEATURES = 26
N_CONTEXT = 9
MODEL_FILE = 'output_graph.pbmm'
ALPHABET_FILE = 'alphabet.txt'
LANGUAGE_MODEL = 'lm.binary'
TRIE_FILE = 'trie'
ds = Model(MODEL_FILE, N_FEATURES, N_CONTEXT, ALPHABET_FILE, BEAM_WIDTH)
ds.enableDecoderWithLM(ALPHABET_FILE, LANGUAGE_MODEL, TRIE_FILE, LM_WEIGHT,
VALID_WORD_COUNT_WEIGHT)
def process(path):
fs, audio = scipy.io.wavfile.read(path)
processed_data = ds.stt(audio, fs)
return processed_data
process('sample.wav')
это может привести к одному и тому же ответу... использовать одни и те же аудиофайлы для обоих выводов и проверки. 16 bit 16000 hz and mono
запись..
Вы должны преобразовать его в 16000 Гц, большинство проблем, связанных со странным выводом, относится к неправильному аудиоформату. Загрузка языковой модели также может улучшить WER.