speech_recognitionをpyinstallerでexe化した時の動作エラーについての質問
解決したいこと
speech_recognitionをpyinstallerでexe化したいのですが、exe化すると動作エラーが発生します。仮想環境上でコードを起動するときは、speech_recognition機能は正常どおり動作します。
exe化した場合に動作を実行すると、何の動作の様子もなくプログラムが終了してしまいます。
※exe ファイルは下記コマンドで作成しています。
pyinstaller ファイル名.py --onefile
エラーを確認する方法、あるいはエラー原因がわかれば教えてください。
発生している問題・エラー
動作ボタンを押しても動作せずに、GUIがシャットダウン。
(エラー原因は確認できてないため不明)
該当箇所は下記コードの def recognize_audio(self,Filename) の部分です。
ソースコード
import pydub, os
import speech_recognition as sr
import sys
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import (QMainWindow, QTextEdit,QWidget,QComboBox,
QFileDialog, QApplication,QVBoxLayout,QHBoxLayout)
class Main(QMainWindow):
def __init__(self):
super().__init__()
self.width = 450
self.height = 200
layout = QVBoxLayout()
sub_layout = QHBoxLayout()
self.textEdit = QTextEdit()
layout.addWidget(self.textEdit)
self.textEdit.setText('【wav to text】 wavファイルから音声をtxtファイルに書き出します\
\n※wav to text機能を利用するときは外部ライブラリを利用するため\
\n インターネット環境が必要です。\
\n\nそれぞれのファイルが存在するフォルダで本プログラムを実行してください。'
)
layout.addLayout(sub_layout)
self.text_button = QtWidgets.QPushButton('wav to text')
self.text_button.setStyleSheet("background-color:lightblue")
self.text_button.clicked.connect(self.auido2text)
sub_layout.addWidget(self.text_button)
self.setGeometry(100, 100, 450, 200)
self.container = QWidget()
self.container.setLayout(layout)
self.setCentralWidget(self.container)
self.setWindowTitle('audio text converter')
self.show()
#read wav file and Write out text to document.txt.
def auido2text(self):
docuFile = open('document.txt', 'w',encoding="utf-8_sig")
#Loop through every file in "selected" directry
for Filename in os.listdir('.'):
if not Filename.endswith('.wav'):
continue #skip non-wav files
text = self.recognize_audio(Filename)
docuFile.write(text)
docuFile.write('\n\n')
docuFile.close()
cwd = os.getcwd()
self.textEdit.setText('完了しました!')
#Write out text #この部分が該当する機能です。
def recognize_audio(self,Filename):
r = sr.Recognizer()
with sr.AudioFile(Filename) as source:
audio = r.record(source)
text = r.recognize_google(audio, language= 'es-ES')
return text
app = QApplication(sys.argv)
ex = Main()
sys.exit(app.exec_())
0 likes