Код десктопного приложения распознавания речи и записи в текстовое поле на основе движка SpeechRecognition и графики PyQt5. Пока есть только английская акустическая модель.
Необходимо установить пакет
pip install SpeechRecognition. Для работы приложения нужен доступ в сеть Интернет. Распознанный текст записываем в файл text.txt.
from PyQt5.QtWidgets import QApplication, QPushButton, QDialog, QVBoxLayout, QTextEdit
from PyQt5.QtGui import QFont
import speech_recognition as sr
import sys
class Window(QDialog):
def __init__(self):
super().__init__()
self.title = "Audio Converter Application"
self.top = 100
self.left = 100
self.width = 400
self.height = 300
self.setWindowTitle(self.title)
self.setGeometry(self.top, self.left, self.width, self.height)
self.initUI()
def initUI(self):
vbox = QVBoxLayout()
self.textedit = QTextEdit(self)
self.textedit.setFont(QFont("Times", 15))
vbox.addWidget(self.textedit)
self.btn2 = QPushButton("Convert Audio")
vbox.addWidget(self.btn2)
self.btn2.clicked.connect(self.convertAudio)
self.setLayout(vbox)
def convertAudio(self):
r = sr.Recognizer()
sound = 'sound.wav'
with sr.AudioFile(sound) as source:
sound = r.listen(source)
try:
text = r.recognize_google(sound)
self.textedit.setText(text)
except Exception as e:
print(e)
app = QApplication(sys.argv)
window = Window()
window.show()
app.exec()
Тот же код с записью распознанного текста в файл и с поддержкой русского языка:
from PyQt5.QtWidgets import QApplication, QPushButton, QDialog, QVBoxLayout, QTextEdit
from PyQt5.QtGui import QFont
import speech_recognition as sr
import sys
class Window(QDialog):
def __init__(self):
super().__init__()
self.title = "Audio Converter Application"
self.top = 100
self.left = 100
self.width = 400
self.height = 300
self.setWindowTitle(self.title)
self.setGeometry(self.top, self.left, self.width, self.height)
self.initUI()
def initUI(self):
vbox = QVBoxLayout()
self.textedit = QTextEdit(self)
self.textedit.setFont(QFont("Times", 15))
vbox.addWidget(self.textedit)
self.btn2 = QPushButton("Convert Audio")
vbox.addWidget(self.btn2)
self.btn2.clicked.connect(self.convertAudio)
self.setLayout(vbox)
def convertAudio(self):
r = sr.Recognizer()
sound = 'sound3_ru.wav'
global text
with sr.AudioFile(sound) as source:
sound = r.listen(source)
try:
text = r.recognize_google(sound, language="ru-RU")
self.textedit.setText(text)
self.writetofile()
except Exception as e:
print(e)
def writetofile(self):
pass
#f=open('text.txt', 'w')
#f.write(text)
app = QApplication(sys.argv)
window = Window()
window.show()
app.exec()
https://teachyourselve.blogspot.com/2018/08/pyqt5-audio-speech-to-text-converter.html
|