想在 PC 端做一个语音助手, 尝试过 voicebot, 但是在自定义命令, 命令参数, 命令唤醒 /睡眠等方面, 不是特别的满意。Voicebot,他的命令识别却是相当准确的, 目的就想要一个沃斯堡的这样的语音识别的引擎但是后续的命令如何处理,我自己来自定义。
考虑到现在语音识别系统已经比较成熟, 所以自己参考网上的一些文章, 用百度的语音接口实现了语音识别。 https://www.bilibili.com/video/av45532338/
参考了这个链接, 问题在于你必须得在他的指定时间间隔内出入声音, 如果你说过声音的时候,正好是他上传和分析音频文件的时候, 你的语音命令就会折断。
自己尝试在做的时候很难做到和 voicebot 一样的效果。
def rec(rate=16000):
r = sr.Recognizer()
with sr.Microphone(sample_rate=rate) as source:
print("please say something")
audio = r.listen(source, timeout=3, phrase_time_limit=5)
# audio = r.listen(source) # 使用这样的参数整个程序会挂住不动
print("recording done")
with open("recording.wav", "wb") as f:
f.write(audio.get_wav_data())
所以这一考虑,想要一个可以持续不断的对语音进行分析和识别的一个软件或者代码,
比如这样一个应用场景, 我先说"打开记事本", 我的程序可以帮我打开记事本, 过了 10 秒钟后,我再说打开"画图软件", 我的程序可以帮我打开画图软件。 也就是说多个命令之间不用主动的唤醒,比如不用说"你好, 小爱"唤醒程序就可以直接识别命令, 识别程序是始终在识别的, 并且在处理音频的时候不会影响接下来语音命令的录入。
但是我觉得这个功能需要去对音频进行分析, 这方面并不是很熟练。
所以想请问, 有没有什么现成的轮子或者文章之类的能提供相关的帮助。
或者更好的是有没有类似的已经做好的开源软件,
功能就是在不主动唤醒的情况下可以持续检测语音输入, 将我的语音输入返回识别的结果即可。
python 最好。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.