自制一个语音识别的系统如何实现实时不断的监测语音输入?

不尽1年前 ⋅ 811 阅读

想在 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 最好。

全部评论: 0

    相关推荐