Почему результаты этой Python-программы DeepSpeech отличаются от результатов, которые я получаю из интерфейса командной строки? - PullRequest
0 голосов
/ 15 декабря 2018

Я изучаю движок 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

минус "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 ]

0 голосов
/ 15 декабря 2018

просто включите ваши 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 запись ..

0 голосов
/ 15 декабря 2018

Вы должны преобразовать его в 16000 Гц, большинство проблем, связанных со странным выводом, относится к неправильному аудиоформату.Загрузка языковой модели также может улучшить WER.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...