3

我想使用 Mozilla deepspeech 将语音转换为文本。但是输出真的很差。

我已经下载了 mozilla 的预训练模型,然后我所做的是:



BEAM_WIDTH = 500

LM_WEIGHT = 1.50

VALID_WORD_COUNT_WEIGHT = 2.10

N_FEATURES = 26

N_CONTEXT = 9


ds = Model(model, N_FEATURES, N_CONTEXT, alphabet, BEAM_WIDTH)


fs,audio = wav.read(path)


data = audio[:,0] ## changing to mono channel (using only one channel)

prediction = ds.stt(data,fs)

print(test)

print(prediction)

现在输出与我的音频样本相去甚远。我该怎么做才能提高它的准确性?

4

1 回答 1

0

我认为这是因为您没有包含任何 LanguageModel。

预训练模型基本上只是声学模型,它只会将音频转录为可能没有意义的类似发音文本。

如果将声学模型与语言模型 (LM) 结合起来,您可能会得到更好的结果。

在您的代码示例中,我可以看到参数LM_WEIGHT,但看不到对 LM 本身的任何引用。

我不确定您要以哪种语言集成 deepspeech,但这里是 node-js 的示例。这是集成LM的部分

const LM_ALPHA = 0.75;
const LM_BETA = 1.85;
let lmPath = './models/lm.binary';
let triePath = './models/trie';
model.enableDecoderWithLM(lmPath, triePath, LM_ALPHA, LM_BETA);

如果我没记错的话,LM & Trie 文件包含在预训练的下载 ZIP 中

wget https://github.com/mozilla/DeepSpeech/releases/download/v0.5.1/deepspeech-0.5.1-models.tar.gz

否则,您还可以创建自己的语言模型,如果您只需要模型来识别特定单词,这将是有意义的。

于 2019-11-16T13:31:37.127 回答