1

我正在学习 Mozilla 的 DeepSpeech Speech-To-Text 引擎。我让命令行界面正常工作没有问题,但 Python 界面的行为似乎有所不同。当我运行时:

deepspeech --model models/output_graph.pb --alphabet models/alphabet.txt --audio testFile3.wav

在使用 sox 生成的 16 位单声道 48000 Hz .wav 文件上,我得到以下信息:

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)似乎不会改变输出。

4

2 回答 2

2

您应该将其转换为 16000 Hz,大多数与奇怪输出相关的问题属于不正确的音频格式。加载语言模型也可以提高 WER。

于 2018-12-14T23:57:39.250 回答
2

只需包含您的trielm.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录制..

于 2018-12-15T06:40:33.613 回答