def __init__(self, parent: t.Optional[QtCore.QObject] = None): super().__init__(parent) self._settings = settings.Settings(self) self._recorder = QtMultimedia.QAudioRecorder(self) self._recorder.durationChanged.connect( lambda d: self.recording_progress.emit(d)) self._record = None self._setup_recorder()
def __init__(self): super().__init__() self.setupUi(self) self.VOICE_INFO_URL = 'https://vtcc.ai/voice/api/tts/v1/rest/voices' self.TTS_URL = 'https://viettelgroup.ai/voice/api/tts/v1/rest/syn' self.STT_URL = 'https://vtcc.ai/voice/api/asr/v1/rest/decode_file' self.TOKEN = '67EYFswc7lE2qrBbRePZCFYYq68sQHr7mngHhf8i8rWXH-XSXmLnfV9Ko3QDWDp1' self.CERT_PATH = 'bin/wwwvtccai.crt' self.voice_info = None self.get_voice_info() self.play_button.clicked.connect(self.play_button_event) self.player = QtMultimedia.QMediaPlayer() self.playlist = QtMultimedia.QMediaPlaylist() self.player.setPlaylist(self.playlist) self.recorder = QtMultimedia.QAudioRecorder() self.recorder.audioSettings().setCodec('audio/pcm') self.recorder.audioSettings().setSampleRate(11025) self.recorder.audioSettings().setChannelCount(1) self.recorder.setContainerFormat('wav') record_file = QtCore.QUrl.fromLocalFile(getcwd() + '/temp/record.wav') self.recorder.setOutputLocation(record_file) self.record_button.clicked.connect(self.record_event)
def __init__(self): super().__init__() self.setLayout(qtw.QGridLayout()) # Playback self.label = qtw.QLabel("No file loaded") self.layout().addWidget(self.label, 0, 0, 1, 2) self.play_button = PlayButton() self.layout().addWidget(self.play_button, 3, 0, 1, 2) self.player = qtmm.QMediaPlayer() self.play_button.clicked.connect(self.on_playbutton) self.player.stateChanged.connect(self.play_button.on_state_changed) # Loading files self.file_button = qtw.QPushButton( 'Load File', clicked=self.get_file) self.layout().addWidget(self.file_button, 4, 0) # Slider self.position = qtw.QSlider( minimum=0, orientation=qtc.Qt.Horizontal) self.layout().addWidget(self.position, 1, 0, 1, 2) self.player.positionChanged.connect(self.position.setSliderPosition) self.player.durationChanged.connect(self.position.setMaximum) self.position.sliderMoved.connect(self.player.setPosition) # Looping self.loop_cb = qtw.QCheckBox( 'Loop', stateChanged=self.on_loop_cb ) self.layout().addWidget(self.loop_cb, 2, 0) # Volume self.volume = qtw.QSlider( minimum=0, maximum=100, sliderPosition=75, orientation=qtc.Qt.Horizontal, sliderMoved=self.player.setVolume ) self.layout().addWidget(self.volume, 2, 1) # Recording self.recorder = qtmm.QAudioRecorder() # supported audio inputs print(self.recorder.audioInputs()) #self.recorder.setAudioInput('default:') # Overriding sound recording settings #settings = qtmm.QAudioEncoderSettings() #settings.setCodec('audio/pcm') #settings.setSampleRate(44100) #settings.setQuality(qtmm.QMultimedia.HighQuality) #self.recorder.setEncodingSettings(settings) #self.recorder.setContainerFormat('audio/x-wav') #self.recorder.setOutputLocation( # qtc.QUrl.fromLocalFile(qtc.QDir.home().filePath('sample1'))) self.record_button = RecordButton() self.recorder.stateChanged.connect( self.record_button.on_state_changed) self.layout().addWidget(self.record_button, 4, 1) self.record_button.clicked.connect(self.on_recordbutton)
def __init__(self, parent=None): QtWidgets.QWidget.__init__(self, parent, flags=QtCore.Qt.Window | QtCore.Qt.MSWindowsFixedSizeDialogHint) self.setWindowTitle("Запись звука") # Инициализируем подсистему для записи звука self.ardRecorder = QtMultimedia.QAudioRecorder() # Устанавливаем максимальную громкость self.ardRecorder.setVolume(100) # Звук будет сохраняться в файле record.wav, находящемся в # той же папке, где хранится программа fn = QtCore.QUrl.fromLocalFile(os.path.abspath("record.wav")) self.ardRecorder.setOutputLocation(fn) # Устанавливаем звуковой вход по умолчанию self.ardRecorder.setAudioInput(self.ardRecorder.defaultAudioInput()) # Указываем формат файла WAV self.ardRecorder.setContainerFormat("audio/x-wav") # Задаем параметры кодирования звука aes = QtMultimedia.QAudioEncoderSettings() aes.setCodec("audio/pcm") aes.setSampleRate(8000) aes.setChannelCount(1) aes.setEncodingMode(QtMultimedia.QMultimedia.ConstantQualityEncoding) aes.setQuality(QtMultimedia.QMultimedia.VeryLowQuality) self.ardRecorder.setAudioSettings(aes) self.ardRecorder.statusChanged.connect(self.initRecorder) self.ardRecorder.durationChanged.connect(self.showDuration) # Создаем компоненты для запуска, приостановки и остановки # записи звука и регулирования его уровня vbox = QtWidgets.QVBoxLayout() hbox = QtWidgets.QHBoxLayout() self.btnRecord = QtWidgets.QPushButton("&Запись") self.btnRecord.clicked.connect(self.ardRecorder.record) hbox.addWidget(self.btnRecord) self.btnPause = QtWidgets.QPushButton("П&ауза") self.btnPause.clicked.connect(self.ardRecorder.pause) self.btnPause.setEnabled(False) hbox.addWidget(self.btnPause) self.btnStop = QtWidgets.QPushButton("&Стоп") self.btnStop.clicked.connect(self.ardRecorder.stop) self.btnStop.setEnabled(False) hbox.addWidget(self.btnStop) vbox.addLayout(hbox) hbox = QtWidgets.QHBoxLayout() lblVolume = QtWidgets.QLabel("&Уровень записи") hbox.addWidget(lblVolume) sldVolume = QtWidgets.QSlider(QtCore.Qt.Horizontal) sldVolume.setRange(0, 100) sldVolume.setTickPosition(QtWidgets.QSlider.TicksAbove) sldVolume.setTickInterval(10) sldVolume.setValue(100) lblVolume.setBuddy(sldVolume) sldVolume.valueChanged.connect(self.ardRecorder.setVolume) hbox.addWidget(sldVolume) vbox.addLayout(hbox) # Создаем надпись, в которую будет выводиться состояние # программы self.lblStatus = QtWidgets.QLabel("Готово") vbox.addWidget(self.lblStatus) self.setLayout(vbox) self.resize(300, 100)