添加链接描述在这里插入代码片
**
Python 音频信号处理
话不多说上代码
import ui_AudioEffects
from ui_AudioEffects import Ui_AudioEffects
from PyQt4 import QtCore, QtGui
from PyQt4.Qt import QApplication, SIGNAL, QFileDialog, QIcon,QWidget
from PyQt4 import phonon
from PyQt4.phonon import Phonon
#from mpl_pyqt4_widget import MPL_Widget
import numpy as np
import wave
import scipy.signal as signal
import os, sys
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Player(QtGui.QMainWindow):
def __init__(self,parent=None):
QWidget.__init__(self)
Ui_AudioEffects.__init__(self)
self.mediaSource = None
self.audioPath = ''
self.file = ''
self.ui = Ui_AudioEffects
self.t = []
self.sources = []
self.i=1
self.j=1
self.k=1
self.temp="temp.wav"
self.flag=0
self.mediaObj = phonon.Phonon.MediaObject(self)
self.audioSink = Phonon.AudioOutput(Phonon.MusicCategory, self)
self.audioPath = Phonon.createPath(self.mediaObj, self.audioSink)
self._createUI()
self._connect()
self.show()
def _createUI(self):
self.ui = ui_AudioEffects.Ui_AudioEffects()
self.ui.setupUi(self)
self.ui.retranslateUi(self)
#将按钮转换为图片
self.playIcon= QIcon("play.png")
self.pauseIcon= QIcon("pause.png")
stopIcon= QIcon("stop.png")
musicIcon=QIcon("music.png")
self.setWindowIcon(musicIcon)
self.ui.playToolButton.setIcon(self.playIcon)
self.ui.stopToolButton.setIcon(stopIcon)
#激活进度条和声音
self.ui.seekSlider.setMediaObject(self.mediaObj)
self.ui.volumeSlider.setAudioOutput(self.audioSink)
#将幅度和频谱框背景置黑
self.ui.plotWidget.canvas.ax.patch.set_facecolor("black")
self.ui.plotWidget_2.canvas.ax.patch.set_facecolor("black")
#打开文件前禁用某些功能
self.ui.playToolButton.setEnabled(False)
self.ui.stopToolButton.setEnabled(False)
self.ui.actionWavesReverb.setEnabled(False)
self.ui.actionLowPassFilter.setEnabled(False)
self.ui.actionEcho.setEnabled(False)
#创建信号槽事件
def _connect(self):
#打开文件
self.connect(self.ui.fileOpenAction,SIGNAL("triggered()"),self.openFileDialog)
#关闭窗体
self.connect(self.ui.fileExitAction,SIGNAL("triggered()"),self.close)
#改变音效
self.connect(self.ui.actionWavesReverb,SIGNAL("triggered()"),self.reverbEffect)
self.connect(self.ui.actionEcho,SIGNAL("triggered()"),self.echoEffect)
self.connect(self.ui.actionLowPassFilter,SIGNAL("triggered()"),self.lpEffect)
#播放、暂停音乐
self.connect(self.ui.playToolButton,SIGNAL("clicked()"),self.playMedia)
#停止音乐
self.connect(self.ui.stopToolButton,SIGNAL("clicked()"),self.stopMedia)
#打开文件
def openFileDialog(self):
self.file = ''
self.file = \
str(QFileDialog.getOpenFil