为什么这个 DeepSpeech python 程序的结果与我从命令行界面获得的结果不同?
Why do the results of this DeepSpeech python program differ from the results I get from the command line interface?
我正在学习 Mozilla 的 DeepSpeech 语音转文本引擎。我可以轻松地让命令行界面正常工作,但 Python 界面的行为似乎有所不同。当我 运行:
deepspeech --model models/output_graph.pb --alphabet models/alphabet.txt --audio testFile3.wav
在使用 sox 生成的 16 位、单声道 48000 Hz .wav 文件上,我得到以下信息:
test test apple benana
减去 "benana" 当我的意思是 "banana" 它似乎工作正常,以及我测试过的其他文件。当我尝试使用来自 this tutorial:
的以下代码时,问题就来了
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)似乎不会更改输出。
你应该把它转换成16000赫兹,大部分与奇怪输出相关的问题都属于不正确的音频格式。加载语言模型也可以提高 WER。
只需包含您的 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
录音..
我正在学习 Mozilla 的 DeepSpeech 语音转文本引擎。我可以轻松地让命令行界面正常工作,但 Python 界面的行为似乎有所不同。当我 运行:
deepspeech --model models/output_graph.pb --alphabet models/alphabet.txt --audio testFile3.wav
在使用 sox 生成的 16 位、单声道 48000 Hz .wav 文件上,我得到以下信息:
test test apple benana
减去 "benana" 当我的意思是 "banana" 它似乎工作正常,以及我测试过的其他文件。当我尝试使用来自 this tutorial:
的以下代码时,问题就来了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)似乎不会更改输出。
你应该把它转换成16000赫兹,大部分与奇怪输出相关的问题都属于不正确的音频格式。加载语言模型也可以提高 WER。
只需包含您的 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
录音..