Kivy 2.0.0用pyttsx3实现TTS功能,打包APK后点击朗读闪退如何解决
pyttsx3仅支持桌面端系统的原生TTS接口,无法在安卓平台运行,这是你点击按钮闪退的根本原因。安卓端需要调用系统原生TTS服务实现朗读功能,推荐使用Kivy官方配套的跨平台接口库plyer完成适配,同时需要修改Buildozer配置,具体操作如下:
1. 替换代码依赖
首先本地安装plyer库:pip install plyer
修改你的Python主文件代码如下,kv文件无需改动:
from kivy.app import App from kivy.lang import Builder from kivy.uix.widget import Widget from plyer import tts Builder.load_file('tts.kv') class MyLayout(Widget): def speak(self): word = self.ids.word_input.text # 空文本跳过朗读避免报错 if not word.strip(): return tts.speak(message=word) class myApp(App): def build(self): return MyLayout() if __name__ == "__main__": myApp().run()
2. 修改Buildozer配置文件
打开你的buildozer.spec文件,修改以下两个配置项:
- 调整依赖项,移除pyttsx3,新增plyer:
requirements = python3,kivy==2.0.0,plyer
- 添加安卓权限:
android.permissions = INTERNET,ACCESS_NETWORK_STATE
注:部分安卓设备需要预先安装系统TTS引擎(多数设备出厂自带,没有的话首次调用会提示下载),即可正常使用朗读功能。
内容的提问来源于stack exchange,提问作者test python
相关产品推荐
相关产品推荐

