python для Android вылетает при запуске: отсутствуют модули google_speech и gtts

#android #python-3.x #google-speech-api #buildozer #gtts

#Android #python-3.x #google-speech-api #buildozer #gtts

Вопрос:

Я написал приложение на python3 под названием chinese_speaker с помощью kivy и google_speech. после компиляции с помощью buildozer я скопировал его на свой смартфон. Каждый раз, когда я пытался запустить, он всегда немедленно закрывался. итак, я активировал отладку adb, и в файлах журнала я нашел эти строки:

 09-22 13:29:50.971 13746 13789 I python  :    File "/home/[user_name]/Documents/Python/Buildozer/chinese_speaker/.buildozer/android/app/main.py", line 10, in <module>
09-22 13:29:50.971 13746 13789 I python  :  ModuleNotFoundError: No module named 'google_speech'
09-22 13:29:50.971 13746 13789 I python  : Python for android ended.
  

Я проверил это на своем смартфоне, но google_speech, похоже, установлен:

 $ /run/user/1000/gvfs/mtp:host=SAMSUNG_SAMSUNG_Android_R58N146M9KX$ pip3 install google_speech
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: google_speech in /home/[user_name]/.local/lib/python3.8/site-packages (1.1.0)
Requirement already satisfied: appdirs>=1.4.0 in /usr/local/lib/python3.8/dist-packages (from google_speech) (1.4.4)
Requirement already satisfied: requests>=2.6.0 in /usr/lib/python3/dist-packages (from google_speech) (2.22.0)
Requirement already satisfied: web-cache>=1.1.0 in /home/[user_name]/.local/lib/python3.8/site-packages (from google_speech) (1.1.0)

  

Как я могу подключить свое приложение к библиотеке google_speech?

Большое вам спасибо!

(Это мой первый пост здесь, в Stackoverflow. Пожалуйста, извините меня, если есть какой-то недостаток информации.

Редактировать

Я попробовал то же приложение без библиотеки google_speech, и оно отлично работало. Но если я заменю google_speech на gtts, я получу ту же ошибку:

 09-23 10:47:38.774  5914  5984 I python  :    File "/home/[user_name]/Documents/Python/Buildozer/chinese_speaker/.buildozer/android/app/main.py", line 11, in <module>
09-23 10:47:38.774  5914  5984 I python  :  ModuleNotFoundError: No module named 'gtts'
09-23 10:47:38.774  5914  5984 I python  : Python for android ended.
  

Должен ли я включать такие библиотеки на Android или я должен указать это в buildozer.spec??

Комментарии:

1. Похоже, вы установили google_speech где -то на своем устройстве, но я не уверен, как, и, скорее всего, приложение нигде не хочет его импортировать. Вы могли бы попытаться добавить это местоположение в pythonpath, но я не знаю, будет ли оно совместимо, если модуль действительно работает на Android.

Ответ №1:

Как я понял, проблема в том, что GTTS и google_speech не работают на Android.

Для этого вы можете использовать plyer. Но с plyer вы можете использовать только язык преобразования текста в речь по умолчанию вашего устройства Android. Чтобы говорить по-китайски, вам нужно изменить язык преобразования текста в речь по умолчанию на вашем смартфоне на китайский.