首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pocketsphinx切字

Pocketsphinx切字
EN

Stack Overflow用户
提问于 2017-11-11 22:15:34
回答 1查看 631关注 0票数 1

我有个问题。当我用控制台翻口袋狮身人面像时,一切都很好:

代码语言:javascript
复制
pi@raspberrypi:~ $ pocketsphinx_continuous -hmm /usr/local/share/pocketsphinx/model/en-us/en-us -lm 6764.lm -dict 6764.dic -samprate 16000 -inmic yes -adcdev plughw:0,0

然而,当我尝试通过python脚本运行它时,袖珍狮身人面像会识别错误的单词。

它是python脚本的代码:

代码语言:javascript
复制
import sys, os, pyaudio
from pocketsphinx.pocketsphinx import *
from sphinxbase.sphinxbase import *

modeldir = "/home/pi/Downloads/sphinx4-5prealpha-src/sphinx4-data/src/main/resources/edu/cmu/sphinx/models/"

# Create a decoder with certain model
config = Decoder.default_config()
config.set_string('-hmm', os.path.join(modeldir, 'en-us/en-us'))
config.set_string('-dict', '/home/pi/Downloads/6764.dic')
config.set_string('-lm', '/home/pi/Downloads/6764.lm')
config.set_string('-samprate', '16000')

config.set_string('-adcdev', 'plughw:0,0')         

p = pyaudio.PyAudio()
stream = p.open(format=pyaudio.paInt16, channels=1, rate=16000, input=True)
stream.start_stream()   

decoder = Decoder(config)
decoder.start_utt()
print ("RECOGNITION STARTED")


while True:
    buf = stream.read(1024)


    decoder.process_raw(buf, False, False)

    if decoder.hyp() != None:
        print ([(seg.word, seg.prob, seg.start_frame, seg.end_frame) for seg in decoder.seg()])
        print ("Detected keyword, restarting search")          

        decoder.end_utt()
        decoder.start_utt()

我不知道是怎么回事。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-24 05:37:53

尝试使用r.recognize_sphinx(audio)进行识别而不是使用

代码语言:javascript
复制
decoder.start_utt() try 
stream.recognize_sphinx(audio)

您也可以尝试这样做:

代码语言:javascript
复制
import speech_recognition
import pyttsx3

speech_engine = pyttsx3.init('sapi5') 
speech_engine.setProperty('rate', 150)

def speak(text):
     speech_engine.say(text)
     speech_engine.runAndWait()

recognizer = speech_recognition.Recognizer()

def listen():
    with speech_recognition.Microphone() as source:
        recognizer.adjust_for_ambient_noise(source)
        audio = recognizer.listen(source)

    try:
        return recognizer.recognize_sphinx(audio)

    except speech_recognition.UnknownValueError:
        print("Could not understand audio")
    except speech_recognition.RequestError as e:
        print("Recog Error; {0}".format(e))

    return ""

speak("Say something!")
speak("I heard you say " + listen())
print(listen())
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47243349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档