python3 错误 JackShmReadWritePtr::~JackShmReadWritePtr - Init 未完成 -1,跳过 Ubuntu 中的解锁

python3 error JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock in Ubuntu

我正在尝试进行语音识别,但每次 运行 我都会收到此错误。

JackShmReadWritePtr::~JackShmReadWritePtr - 未完成 -1 的初始化,跳过解锁

这是我的代码。

from gtts import gTTS
import playsound as ps
import speech_recognition as sr

sr.Microphone.list_microphone_names()

text=('text')
mic = sr.Microphone(device_index=20)
r = sr.Recognizer()

with mic as source:
    audio = r.listen(source)

re = r.recognize_google(audio)

def rSpeak():
    tts = gTTS(text)
    tts.save('hello.mp3')
    ps.playsound('hello.mp3', True)
rSpeak()

非常感谢任何帮助

你应该试着用这个说话:

import pyttsx3
engine = pyttsx3.init('sapi5')
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[0].id) 
def speak(audio):
    engine.say(audio)
    engine.runAndWait()
speak('Hello, Sir.')

如果你想识别一个声音,那就用这个:

import speech_recognition as sr 
def takeCommand():
    #It takes microphone input from the user and returns string output
    r = sr.Recognizer()
    with sr.Microphone() as mic:
        print("Listening...")
        r.adjust_for_ambient_noise(mic)
        audio = r.listen(mic)
    try:
        print("Recognizing...")
        query = r.recognize_google(audio, language='en-in')
        print(f"User said: {query}\n")
    except Exception:
        print("Say that again please...")
        return "None"
    return query

query = takeCommand().lower()   #lower() is used to keep all your queries in lowercase.

然后您可以匹配您的查询变量以匹配您要遵循的命令。