我尝试编写语音识别程序,但我需要从 PC 扬声器编程录制声音,我尝试将两部分代码合并起来,它们分别工作得很好,但我看到这个错误,怎么办?我使用 Windows 10 和 Python 3.10
我的代码:
import speech_recognition as sr
import os
import sys
import soundcard as sc
import time
speakers = sc.all_speakers()
default_speaker = sc.default_speaker()
mics = sc.all_microphones(include_loopback=True)
default_mic = mics[0]
for i in range(len(mics)):
try:
print(f"{i}: {mics[i].name}")
except Exception as e:
print(e)
with default_mic.recorder(samplerate=148000) as mic, \
default_speaker.player(samplerate=148000) as sp:
print("Recording...")
data = mic.record(numframes=1000000)
print("Done...Stop your sound so you can hear playback")
time.sleep(5)
def talk(words):
print(words)
os.system("say " + words)
talk("Hello")
def command():
r = sr.Recognizer()
print("Speak")
r.pause_threshold = 1
r.adjust_for_ambient_noise(data, duration=1)
audio = r.listen(data)
try:
zadanie = r.recognize_google(audio, language="ru-RU").lower()
print("You said: " + zadanie)
except sr.UnknownValueError:
talk("I do not understand")
zadanie = command()
return zadanie
while True:
command()