0 / 0 / 0
Регистрация: 29.09.2019
Сообщений: 5

Окончание записи голоса по кнопке

18.12.2022, 14:22. Показов 881. Ответов 0

Студворк — интернет-сервис помощи студентам
Подскажите как реализовать прерывание записи голоса внутри приложения через нажатие кнопки, просто я не понимаю как это закодировать, также проблема при нажатии кнопки "начать запись" приложение повисает до конца распознавания.
Пока тут просто стоит таймер для этих целей.
Если можете помочь, пожалуйста пишите просто код который надо добавить, исправить.



Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# -*- coding: utf-8 -*-
import speech_recognition as sr
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMessageBox
 
 
class Ui_Speech_Recognizer(object):
    def setupUi(self, Speech_Recognizer):
        Speech_Recognizer.setObjectName("Speech_Recognizer")
        Speech_Recognizer.resize(800, 379)
        self.centralwidget = QtWidgets.QWidget(Speech_Recognizer)
        self.centralwidget.setObjectName("centralwidget")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(159, 10, 471, 30))
        font = QtGui.QFont()
        font.setFamily("Lucida Sans Unicode")
        font.setBold(True)
        font.setWeight(75)
        self.label.setFont(font)
        self.label.setAlignment(QtCore.Qt.AlignCenter)
        self.label.setObjectName("label")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(20, 250, 171, 81))
        self.pushButton.setObjectName("pushButton")
        self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_3.setGeometry(QtCore.QRect(210, 250, 171, 81))
        self.pushButton_3.setObjectName("pushButton_2")
        self.textEdit = QtWidgets.QTextEdit(self.centralwidget)
        self.textEdit.setGeometry(QtCore.QRect(13, 40, 771, 201))
        self.textEdit.setObjectName("textEdit")
        Speech_Recognizer.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(Speech_Recognizer)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21))
        self.menubar.setObjectName("menubar")
        Speech_Recognizer.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(Speech_Recognizer)
        self.statusbar.setObjectName("statusbar")
        Speech_Recognizer.setStatusBar(self.statusbar)
 
        self.retranslateUi(Speech_Recognizer)
        QtCore.QMetaObject.connectSlotsByName(Speech_Recognizer)
 
        self.functions()
 
 
 
    def retranslateUi(self, Speech_Recognizer):
        _translate = QtCore.QCoreApplication.translate
        Speech_Recognizer.setWindowTitle(_translate("Speech_Recognizer", "Speech Recognizer"))
        self.label.setText(_translate("Speech_Recognizer", "Текст"))
        self.pushButton.setText(_translate("Speech_Recognizer", "Начать запись"))
        self.pushButton_3.setText(_translate("Speech_Recognizer", "Очистить"))
        self.textEdit.setHtml(_translate("Speech_Recognizer", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>"))
 
 
    def functions(self):
        self.pushButton.clicked.connect(self.recognizer)
        self.pushButton_3.clicked.connect(self.clear)
 
    def recognizer(self):
        with mic as source:
            print("Говори глупец!")
            audio = r.listen(source)
            r.adjust_for_ambient_noise(source, duration=0.5)
            captured_audio = r.record(source=mic, duration=5)
            try:
                a = r.recognize_google(audio, language="ru-RU")
                self.textEdit.setText(self.textEdit.toPlainText() + a + "\n")
                print("Ты сказал " + a)
            except sr.UnknownValueError:
                error = QMessageBox()
                error.setWindowTitle("Ошибка")
                error.setText("Прошу повторить я вас не понял")
                error.setIcon(QMessageBox.Warning)
                error.standardButtons(QMessageBox.Ok)
                error.exec_()
            except sr.RequestError as e:
                error = QMessageBox()
                error.setWindowTitle("Ошибка")
                error.setText("Произошла ошибка")
                error.setIcon(QMessageBox.Warning)
                error.standardButtons(QMessageBox.Ok)
                error.exec_()
 
    def clear(self):
        self.textEdit.clear()
 
 
if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    Speech_Recognizer = QtWidgets.QMainWindow()
    ui = Ui_Speech_Recognizer()
    ui.setupUi(Speech_Recognizer)
    Speech_Recognizer.show()
    mic = sr.Microphone(device_index=1)
    r = sr.Recognizer()
    sys.exit(app.exec_())
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.12.2022, 14:22
Ответы с готовыми решениями:

Окончание записи голоса при нажатии кнопки
Здравствуйте. Интересует следующий вопрос. Есть написанная функция записи голоса в GUI матлаб по нажатию кнопки Start, в коде предусмотрена...

Модуляция записи голоса
Нужно промодулировать запись голоса, подскажите как и что неправильно я делаю t=-1:0.01:1; =audioread('wav1.wav'); s_M=; Fc=10; %...

Шум при записи голоса
Всем привет, купил себе недавно микрофон новый &quot;Blue Microphones 861 Spark Digital&quot;. При записи голоса пишется посторонний шум. Пробывал...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.12.2022, 14:22
Помогаю со студенческими работами здесь

Программа для записи голоса
Посоветуте бесплатную программу для записи голоса на микрафон, спасибо.

Определение интонации в записи голоса
Доброго времени суток! Увы, я в ЦОТ еще не очень разбираюсь, потому прошу помощи, советов, литературы, идей, ect. Вопрос,...

Обработчик записи только голоса NAudio
Привет всем!) Вот столкнулся с проблемой записи голоса на NAudio. Если использовать как обычно - все нормально. Но вот как можно...

Фонит микрофон при записи голоса
Ув. знатоки, подскажите. Гарнитура Logitech 960 USB. При записи голоса слышен небольшой фон, как будто гудит електричество. При чем! Этот...

Фильтрация шумов для записи голоса
День добрый. Собственно сабж. Собираюсь писать звук (голос) на меге32 используя ацп+микрофон. Наверняка будет масса посторонних...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru