コード例 #1
0
    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()
コード例 #2
0
 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)
コード例 #3
0
    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)
コード例 #4
0
ファイル: audio_record.py プロジェクト: titanmet/PyQt5
 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)