PyQT5播放音频

       最近自己写的一个软件需要在持续监测T-box的信号强度值时,领导提出在信号低于阈值时给出警报或指示,之前的想法是在软件界面上加一个指示灯,但这样还是需要Tester去盯着屏幕,这样不友好,所以索性在通过声音的方式给出警示,这样就不用一直盯着屏幕了,网上搜索了几个PYQT播放音频的例程,都没法直接运行,在这里记录一下吧

直接上代码:

from PyQt5 import QtMultimedia
from PyQt5.QtCore import QUrl
import time # 需要导入时间模块设置延时

file = QUrl.fromLocalFile('11612.wav') # 音频文件路径
content = QtMultimedia.QMediaContent(file)
player = QtMultimedia.QMediaPlayer()
player.setMedia(content)
player.setVolume(50.0)
player.play()
time.sleep(2) #设置延时等待音频播放结束

值得注意的是,音频时间比较长时,最好另起一个线程专门来播放音频,否则延时会造成进程阻塞

  • 1
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
PyQt5是一个强大的Python GUI框架,可以用于创建各种图形用户界面应用程序。虽然PyQt5本身并没有提供语音合成的功能,但可以通过与其他工具和库的结合来实现语音合成。 一种实现语音合成的方法是使用Text-to-Speech (TTS)库。TTS库可以接收文本输入,并将其转换为语音输出。常用的TTS库包括Festival和Espeak等。 结合PyQt5,我们可以将用户输入的文本传递给TTS库,然后将生成的语音播放出来。这可以通过使用PyQt5的QMediaPlayer类来实现。QMediaPlayer类能够播放多种音频格式,包括生成的语音文件。 首先,我们需要安装TTS库。可以使用pip工具在命令行中运行以下命令安装一个TTS库(以Festival为例): ``` pip install pyttsx3 ``` 接下来,我们可以在PyQt5应用程序中创建一个文本输入框(QLineEdit)和一个按钮(QPushButton)。当用户输入文本并点击按钮时,我们可以获取文本并传递给TTS库进行语音合成。生成的语音文件可以保存到本地或直接通过QMediaPlayer类播放出来。 下面是一个简单的示例代码: ```python import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QLineEdit, QPushButton from PyQt5.QtMultimedia import QMediaPlayer import pyttsx3 class MainWindow(QMainWindow): def __init__(self): super().__init__() self.line_edit = QLineEdit(self) self.line_edit.move(50, 50) self.button = QPushButton("合成语音", self) self.button.move(50, 100) self.button.clicked.connect(self.synthesize_speech) self.player = QMediaPlayer() def synthesize_speech(self): text = self.line_edit.text() tts_engine = pyttsx3.init() tts_engine.save_to_file(text, 'speech.mp3') tts_engine.runAndWait() self.player.setMedia(QMediaContent(QUrl.fromLocalFile('speech.mp3'))) self.player.play() if __name__ == '__main__': app = QApplication(sys.argv) main_window = MainWindow() main_window.show() sys.exit(app.exec_()) ``` 以上代码创建了一个PyQt5主窗口,并在窗口中添加了一个文本输入框和一个按钮。当用户点击按钮时,通过pyttsx3库将文本转换为语音,并使用QMediaPlayer类播放生成的语音文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值