0

我尝试编写语音识别程序,但我需要从 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()
4

0 回答 0