Exe сделал с pyinstaller не работает - PullRequest
0 голосов
/ 10 июля 2019

Я сделал простую программу распознавания речи и попытался создать exe-файл с помощью Pyinstaller, теперь, когда я запускаю этот exe-файл на моей машине, он работает нормально и печатает распознанный звук с микрофона, но когда я запускаю его на другом на машине, на которой я ее запускал * win10 Lenovo IdeaPad 330 *, программа запускается, но не печатает распознанное аудио и продолжает зацикливаться, даже если я дал разрешение на использование микрофона на окнах и когда программа использует микрофон маленький значок на панели задач тоже всплывающие окна. Теперь резюме, что исполняемый файл, сделанный на моей машине, не работает на других и почему? И я думаю, что поток может быть возможно дублировать, так как моя проблема, как конкретно связана с модулями Любое решение?

вот код

import speech_recognition
recognizer = speech_recognition.Recognizer()


def listen():
   with speech_recognition.Microphone() as source:
      print('i m hearing !')
      recognizer.adjust_for_ambient_noise(source)
      try:
         audio = recognizer.listen(
         source=source, timeout=5, phrase_time_limit=4)
      except speech_recognition.WaitTimeoutError:
         pass

   try:
      print(recognizer.recognize_google(audio))
      return recognizer.recognize_google(audio)
   except speech_recognition.UnknownValueError:
      pass
   except Exception as e:
      print(e)


if __name__ == '__main__':
   while True:
      user=str(listen())
      if user in ['exit','close','goodbye']:
         print('okay goodbye!')
         exit()

1 Ответ

1 голос
/ 10 июля 2019

Если микрофона нет, speech_recognition.Microphone() будет вызывать и OSError исключение, поэтому вам нужно его поймать.Я предлагаю вам создать функцию, которая будет возвращать source, если есть микрофон, а затем использовать его в другой функции для чтения команд.Примерно так:

import speech_recognition
recognizer = speech_recognition.Recognizer()


def get_mic():
   try:
      source = speech_recognition.Microphone()
      return source
   except OSError:
      return None


def listen(source):
   with source as src:
      print('i m hearing !')
      recognizer.adjust_for_ambient_noise(src)
      try:
         audio = recognizer.listen(
             source=src, timeout=5, phrase_time_limit=4)
      except speech_recognition.WaitTimeoutError:
         print("speech_recognition.WaitTimeoutError")
         return

      try:
         result = recognizer.recognize_google(audio)
         return str(result)
      except speech_recognition.UnknownValueError:
         print("speech_recognition.UnknownValueError")
         return
      except Exception as e:
         print("Other Exception:", e)


if __name__ == '__main__':
   source = get_mic()
   if not source:
      print("No Mic Device Found!")
      exit()
   while True:
      user = listen(source)
      if user in ['exit', 'close', 'goodbye']:
         print('okay goodbye!')
         exit()
      else:
         print(user)

И наконец, запустите pyinstaller -F script.py для генерации вашего исполняемого файла.

...