能否在安卓应用APK中使用pyttsx3与speech_recognition模块,二者是否兼容安卓
解答
首先明确:pyttsx3、speech_recognition均不原生兼容安卓系统,你当前的代码直接打包成APK后无法在安卓设备上正常运行。
- pyttsx3底层依赖桌面端的语音合成引擎,Windows端为SAPI5、macOS端为NSSpeechSynthesizer、Linux端为eSpeak,以上引擎均无安卓适配版本,在安卓环境下调用
pyttsx3.init()会直接报错。 - speech_recognition的运行逻辑依赖桌面端的本地识别引擎或桌面端的网络识别接口,没有适配安卓系统的底层调用逻辑,无法在安卓环境下运行。
适配安卓的替代方案
你可以使用Kivy生态下的plyer库实现对应功能,plyer是官方推出的跨平台系统能力调用库,已经原生适配安卓的系统级TTS(语音合成)、STT(语音转文字)能力,不需要额外适配底层逻辑。
语音合成功能修改示例
- 打包配置:在buildozer.spec的依赖项中添加
plyer,同时声明安卓系统的TTS调用权限 - 代码调整如下:
import kivy from kivy.app import App from kivy.uix.button import Button from plyer import tts class MyApp(App): def build(self): btn = Button(text = "Activate", size_hint = (.10,.20)) btn.bind(on_press = self.callback) return btn def callback(self, event): tts.speak(message="Hello Sir!", rate=130) if __name__ == "__main__": MyApp().run()
语音识别功能替代
同样调用plyer的stt接口即可,直接调用安卓系统自带的语音识别服务,适配性更高。
内容的提问来源于stack exchange,提问作者Abeer Joshi
相关产品推荐
相关产品推荐

