Как использовать записанный файл Pyaudio сразу
Можете подсказать почему функция
def recording_stopped2(self):
"""This slot is called when recording stops"""
sampoo = sr.AudioFile(r'C:\Users\Тимофей\PycharmProjects\Lika_0.3\Запись-_19_.wav')
r = sr.Recognizer()
with sampoo as source:
# listen for the data (load audio to memory)
audio = r.record(source)
# recognize (convert from speech to text)
recognized_data = r.recognize_google(audio, language="ru").lower()
print(recognized_data)
использует не тот файл который я записал с помощью пайаудио, а его старую версию sr.AudioFile(r'C:\Users\Тимофей\PycharmProjects\Lika_0.3\Запись-19.wav'), а не только что записанный в коде
import sys
import wave
import pyaudio
import speech_recognition as sr
import pyaudio as pa
from PyQt6.QtCore import QThread, pyqtSignal, pyqtSlot
from PyQt6.QtWidgets import QApplication, QGraphicsPixmapItem, QWidget, QMainWindow, QPushButton, QLabel, QVBoxLayout
from PyQt6.QtGui import QPixmap
from PyQt6.QtWidgets import *
microphone = sr.Microphone()
class RecordingThread2(QThread):
stopped = False
sig_started = pyqtSignal()
sig_stopped = pyqtSignal()
def __init__(self, t):
self.target_file = t
super().__init__()
class RecordingThread(QThread):
stopped = False
sig_started = pyqtSignal()
sig_stopped = pyqtSignal()
def __init__(self, t):
self.target_file = t
super().__init__()
def run(self) -> None:
#
audio = pa.PyAudio()
frames = []
stream = audio.open(format=pyaudio.paInt16, channels=1, rate=44100, input=True,
frames_per_buffer=1024)
self.stopped = False
self.sig_started.emit()
while not self.stopped:
data = stream.read(1024)
frames.append(data)
stream.close()
self.sig_stopped.emit()
wf = wave.open('Запись-_19_.wav', 'wb')
wf.setnchannels(1)
wf.setsampwidth(audio.get_sample_size(pa.paInt16))
wf.setframerate(44100)
wf.writeframes(b''.join(frames))
wf.close()
print('jjjojo')
@pyqtSlot()
def stop(self):
# r = sr.Recognizer()
# with sr.AudioFile(r'C:\Users\Тимофей\PycharmProjects\Lika_0.3\test_recording.wav') as source:
# audio_listened = r.record(source)
# # try converting it to text
# text = recognizer.recognize_google(audio_listened, language="ru").lower()
# print(text)
self.stopped = True
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("Rec Audio")
vbox = QVBoxLayout()
hbox = QHBoxLayout()
# Create recording thread and attach slots to its signals
self.recording_thread = (RecordingThread (t='test_recording.wav'))
self.recording_thread.sig_started.connect(self.recording_started)
self.recording_thread.sig_stopped.connect(self.recording_stopped)
self.label = QLabel()
self.pixmap = QPixmap('говорит.jpg')
self.label.setPixmap(self.pixmap)
vbox.addWidget(self.label)
self.recbtn = QPushButton('▶ record')
self.setFixedSize(645, 500)
# Connect signal "recbtn.clicked" to the slot "recording_thread.start" of our QThread
# Never connect directly to the run, always to start!
self.recbtn.clicked.connect(self.recording_thread.start)
self.stopbtn = QPushButton('▪')
self.stopbtn.setDisabled(True)
self.stopbtn.setFixedSize(40, 30)
# Connect signal "stopbtn.clicked" to the slot "recording_thread.stop" of our QThread
self.stopbtn.clicked.connect(self.recording_thread.stop)
self.stopbtn.clicked.connect(self.recording_stopped2)
hbox.addWidget(self.recbtn)
hbox.addWidget(self.stopbtn)
vbox.addLayout(hbox)
self.setLayout(vbox)
@pyqtSlot()
def recording_started(self):
"""This slot is called when recording starts"""
self.pixmap = QPixmap('слушает_нач_вариант.jpg')
self.label.setPixmap(self.pixmap)
self.stopbtn.setDisabled(False)
self.recbtn.setDisabled(True)
@pyqtSlot()
def recording_stopped(self):
"""This slot is called when recording stops"""
self.pixmap = QPixmap('говорит.jpg')
self.label.setPixmap(self.pixmap)
self.recbtn.setDisabled(False)
self.stopbtn.setDisabled(True)
def recording_stopped2(self):
"""This slot is called when recording stops"""
sampoo = sr.AudioFile(r'C:\Users\Тимофей\PycharmProjects\Lika_0.3\Запись-_19_.wav')
r = sr.Recognizer()
with sampoo as source:
# listen for the data (load audio to memory)
audio = r.record(source)
# recognize (convert from speech to text)
recognized_data = r.recognize_google(audio, language="ru").lower()
print(recognized_data)
if __name__ == "__main__":
app = QApplication(sys.argv)
win = Window()
win.show()
app.exec()
Или можете подсказать как использовать записанный файл с помощью Pyaudio сразу пж