def openFile(self): file_= QtWidgets.QFileDialog.getOpenFileName(parent=self, caption= str("Выберите аудиофайл"), filter=str("audio (*.wav)"), ) r = (wave.open(str(file_[0]), "rb")) qurl = QtCore.QUrl(file_[0]) # создаю QUrl self.mplPlayer.setMedia(QtMultimedia.QMediaContent(qurl))# QMediaContent принимает объект Qurl, а не просто строку # Включить аудио WAV # Читать информацию о формате # (Количество каналов, биты квантования, частота дискретизации, точки выборки, тип сжатия, описание типа сжатия) # (nchannels, sampwidth, framerate, nframes, comptype, compname) self.params = r.getparams() nchannels, sampwidth, framerate, nframes = self.params[:4] # nchannelsNumber каналов = 2 # цифры квантования ширины выборки = 2 # частота дискретизации кадров = 22050 # nframes sample points = 53395 # Чтение данных nframes, возврат формата строки str_data = r.readframes(nframes) #Преобразовать строку в массив, чтобы получить одномерный массив коротких типов wave_data = np.fromstring(str_data, dtype=np.short) # Нормализация назначения wave_data = wave_data*1.0/(max(abs(wave_data))) # Интегрировать данные левого и правого канала wave_data = np.reshape(wave_data,[nframes,nchannels]) # wave_data.shape = (-1, 2) # -1 означает, что он не указан и делится в соответствии с номером другого измерения # Наконец, время каждой выборки рассчитывается по количеству точек выборки и частоте выборки. time = np.arange(0, nframes) * (1.0 / framerate) plt.figure() # Форма левого канала plt.subplot(3,1,1) plt.plot(time, wave_data[:,0]) plt.xlabel("Время (секунды)") plt.ylabel("Аплитуда") plt.title("Левый канал") plt.grid() # Правитель plt.subplot(3,1,3) # Форма волны правого канала plt.plot(time, wave_data[:,0], c="g") plt.xlabel("Время (секунды)") plt.ylabel("Амплитуда") plt.title("Левый канал") plt.title("Правый канал") plt.grid() now = datetime.datetime.now() from datetime import date i= str(date.today()) n=str(now.hour) o=str(now.minute) p=str(now.second) plt.savefig(i+" "+ n +';'+ o +';'+ p + ".jpg") # транскрибация аудио и запись в док r = sr.Recognizer () r.recognize_sphinx original_stdout = sys.stdout harvard = sr.AudioFile(file_[0]) def callback(recognizer, audio): voice = recognizer.recognize_sphinx(audio, language = "en-US").lower() with harvard as source: audio = r.record(source)\ r.recognize_sphinx(audio, language='en-US') print(type(audio)) print(r.recognize_sphinx(audio)) now = datetime.datetime.now() from datetime import date i= str(date.today()) n=str(now.hour) o=str(now.minute) p=str(now.second) with open(i+" "+ n +';'+ o +';'+ p + "файл" + ".docx",'w') as f: sys.stdout=f print(r.recognize_sphinx(audio)) print(type(audio)) sys.stdout= original_stdout