Python:在语音识别中获取系统音频而不是麦克风

Posted

技术标签:

【中文标题】Python:在语音识别中获取系统音频而不是麦克风【英文标题】:Python: Get system audio in speech recognition instead of microphone 【发布时间】:2020-04-04 09:56:17 【问题描述】:

我正在研究 python 中的语音识别,但它只是从 Micropohone 获取输入。如何将扬声器的音频作为语音识别库的输入?

这段代码如下:

import speech_recognition as sr
with sr.Microphone() as source:   # using microphone here, would like to use speaker instead
    print("Talk Something...")
    audio=r.listen(source)
    print("Time Over...")

import time
try:
    t1=time.time()
    print("Text: "+r.recognize_google(audio))   # prints after converting speech to text
    t2=time.time()
    print("T2-T1: ", t2-t1)
except:
    print("Didn't understand the audio")

我在这里挣扎了这么久,任何帮助都将不胜感激。谢谢!

【问题讨论】:

【参考方案1】:

您可以像docs一样配置设备索引:

import speech_recognition as sr
for index, name in enumerate(sr.Microphone.list_microphone_names()):
    print("Microphone with name \"1\" found for `Microphone(device_index=0)`".format(index, name))

如果 LINEIN 不能作为单独的输入,您可以在音频属性中将其配置为录音源。

【讨论】:

它给了我这个输出:为@987654323找到名称为“内置麦克风”的麦克风@为@987654324找到名称为“内置输出”的麦克风@名称为“AirBeamTV Audio”的麦克风为 Microphone(device_index=2) 找到了我如何使用索引来获取扬声器而不是麦克风作为语音识别的输入? with sr.Microphone(device_index=1) as source 在使用“device_index=1”时,我收到“OSError: [Errno -9998] Invalid number of channels”。你能告诉我如何解决这个错误吗? 好吧,看来设备 1 不支持录制。您可能只是在 alsa 配置中更改音频源,实际上不可能从库中切换它。 你能编辑答案并告诉我,怎么做?

以上是关于Python:在语音识别中获取系统音频而不是麦克风的主要内容,如果未能解决你的问题,请参考以下文章

Python语音交互的实现

在使用语音识别时记录音频数据?

使用哪个麦克风进行声音识别是不是重要?

是否可以将实时数据发送到 Bing 语音识别?

鸿蒙AI能力之语音识别

html HTML5音频+语音到文本...一旦启用麦克风和语音识别,请说“facebook”,“hack”或“what is my name”