语音识别后控制
Posted
技术标签:
【中文标题】语音识别后控制【英文标题】:Controlling after Speech Recognition 【发布时间】:2019-06-28 06:04:27 【问题描述】:语音转文本后如何触发命令?现在我有文本,但无法在 python 中使用 if 条件比较它,所以我可以执行我需要的任务。我在树莓派中使用 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)
if phrase == "HOME"
print (OK)
代码没有给出任何错误并且工作正常;我说它打印在屏幕上,即代码工作到最后 3 行 [print (phrase)] 并给出预期结果,但最后 2 行没有执行所需的任务,但没有给出错误
【问题讨论】:
它到底打印了什么?代码看起来是正确的,除了 OK(它是变量还是你的意思是“OK”?),也许你必须考虑大小写(phrase.lower() == 'home'
)或检查不完全相等('home' in phrase.lower()
,phrase.lower().startswith('home')
)跨度>
感谢您的考虑;我附上了结果,我考虑了单词“HOME”的情况,而 OK 我的意思是单词“OK”而不是变量
查看文档我已经看到什么短语不是字符串。将print(phrase)
更改为print(phrase, type(phrase), dir(phrase))
并显示结果,它可能会提示如何比较它或从中获取字符串
非常感谢您的回答;没错,它不是字符串;当我打印 (type(phrase)) 时,它显示 [你可以使用
if str(phrase) == "HOME":
或
if phrase.hypothesis() == "HOME":
【讨论】:
感谢您的帮助;你能抽出一些时间来帮助我解决我之后遇到的问题吗?请查看***.com/q/56820304/11711773,我们将非常感谢您的帮助以上是关于语音识别后控制的主要内容,如果未能解决你的问题,请参考以下文章
使用APICloud & 科大讯飞SDK快速实现语音识别功能