【问题标题】:How to change python pocket sphinx dictionary如何更改python袖珍狮身人面像字典
【发布时间】:2016-12-06 22:24:44
【问题描述】:

鉴于我只会说几个选定的单词,因此我正在努力使 Pocketsphinxs 的实时语音识别更加准确。我在网上搜索,似乎我应该能够使用这个网站上的工具创建自己的字典: http://www.speech.cs.cmu.edu/tools/lmtool-new.html 这似乎有效,但是在创建文件后我找不到如何处理这些文件。从 python Pocket sphinx 网站:https://pypi.python.org/pypi/pocketsphinx 看来我应该能够为实时语音识别器设置新字典,如下所示:

import os
from pocketsphinx import LiveSpeech, get_model_path

model_path = get_model_path()

speech = LiveSpeech(
    verbose=False,
    sampling_rate=16000,
    buffer_size=2048,
    no_search=False,
    full_utt=False,
    hmm=os.path.join(model_path, 'en-us'),
    lm=os.path.join(model_path, 'en-us.lm.bin'),
    dic=os.path.join(model_path, 'cmudict-en-us.dict')
)

for phrase in speech:
    print(phrase)

但是,我不清楚在此代码中究竟要更改什么来输入我自己的字典数据。我尝试将字典的 model_path 更改为我从网站下载的字典的路径,但这给出了错误:

RuntimeError: new_Decoder returned -1

我需要在此代码中进行哪些更改才能让 pocketSphinx 使用我的字典?

【问题讨论】:

    标签: python python-2.7 speech-recognition pocketsphinx


    【解决方案1】:

    你应该得到类似8569.lm - 语言模型和8659.dic - 字典的东西。您将它们放在文件系统中并像这样使用:

    import os
    from pocketsphinx import LiveSpeech, get_model_path
    
    model_path = get_model_path()
    
    speech = LiveSpeech(
        sampling_rate=16000,
        hmm=os.path.join(model_path, 'en-us'),
        lm='/home/user/8569.lm',
        dic='/home/user/8569.dic'
    )
    
    for phrase in speech:
        print(phrase)
    

    您必须正确指定文件的文件系统路径,它才会起作用。

    【讨论】:

    • 这有效并消除了错误!所以谢谢你,但是程序现在运行并且什么也不做,知道为什么它不会为它应该识别的文本返回任何东西吗?
    • 很可能麦克风已静音或无法正常工作,您需要检查是否能够录制声音。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 2016-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多