Mac M1下Python个人助手文本转语音故障及替代方案咨询
Mac M1环境下语音助手文本转语音替代方案及问题修复
你在Mac M1设备上开发语音助手时遇到pyttsx3/4兼容性问题,代码仅能播放初始问候语后停止,无法自动进入监听环节。以下是适配M1的替代方案,确保语音播放完成后能正常触发后续监听逻辑:
一、本地无依赖方案(利用Mac原生语音合成)
直接调用Mac系统自带的NSSpeechSynthesizer,完美兼容M1架构,无需额外依赖,播放完成后自动释放资源:
import Foundation import AppKit def speak(text): synthesizer = AppKit.NSSpeechSynthesizer.alloc().init() synthesizer.startSpeakingString_(text) # 等待语音播放结束 while synthesizer.isSpeaking(): Foundation.NSRunLoop.currentRunLoop().runUntilDate_(Foundation.NSDate.dateWithTimeIntervalSinceNow_(0.1)) # 替换原speak函数后,原逻辑可正常执行 speak("Hello! How can I assist you today?") query = listen() if query: running = assistant_logic(query)
安装依赖:执行pip install pyobjc-core pyobjc-framework-AppKit即可。
二、轻量网络依赖方案(gTTS)
使用Google文本转语音API生成音频,配合pygame播放,M1上兼容性稳定:
from gtts import gTTS import pygame import os def speak(text): # 生成临时音频文件 tts = gTTS(text=text, lang='en') temp_audio = "temp_tts.mp3" tts.save(temp_audio) # 播放音频并等待结束 pygame.mixer.init() pygame.mixer.music.load(temp_audio) pygame.mixer.music.play() while pygame.mixer.music.get_busy(): continue pygame.mixer.quit() # 清理临时文件 os.remove(temp_audio) # 替换后执行原逻辑 speak("Hello! How can I assist you today?") query = listen() if query: running = assistant_logic(query)
安装依赖:执行pip install gTTS pygame。
三、高质量云端API方案(OpenAI TTS)
如果追求更好的音质和多样音色,可使用OpenAI的TTS API,M1设备调用无兼容性问题:
import openai import pygame import os openai.api_key = "你的OpenAI API密钥" def speak(text): # 生成语音音频 response = openai.audio.speech.create( model="tts-1", voice="alloy", # 可选音色:alloy, echo, fable, onyx, nova, shimmer input=text ) temp_audio = "temp_openai.mp3" response.write_to_file(temp_audio) # 播放并等待结束 pygame.mixer.init() pygame.mixer.music.load(temp_audio) pygame.mixer.music.play() while pygame.mixer.music.get_busy(): continue pygame.mixer.quit() os.remove(temp_audio) # 替换后执行原逻辑 speak("Hello! How can I assist you today?") query = listen() if query: running = assistant_logic(query)
关键说明
以上所有方案的speak函数都会等待语音播放完成后才返回,这样原代码中问候语播放结束后,就能自动进入listen()函数开始监听用户指令,解决原代码停止运行的问题。
内容的提问来源于stack exchange,提问作者Ansh Tyagi
相关产品推荐
相关产品推荐

