QAudioOutput在PyQt4开始时出现奇怪的峰值声音

时间:2013-07-24 08:47:00

标签: python audio pyqt4

这是一个普遍的问题:如何摆脱声音开始时的峰值声音? 这是完整的代码,您可以尝试一下。为了比较:如果我用QSound播放相同的声音,它没有那个峰值噪声。但我不能使用QSound,因为它不适用于Ubuntu。

如果我在像VLC这样的播放器中播放声音,开头就没有噪音了。 声音如下:http://www.file-upload.net/download-7876205/delete_2.wav.html

import struct, sys, time
from PyQt4.QtCore import QIODevice, Qt, QFile
from PyQt4.QtGui import QApplication, QWidget
from PyQt4.QtMultimedia import QAudio, QAudioDeviceInfo, QAudioFormat, QAudioOutput

class Window(QWidget):

    def __init__(self, parent = None):    
        QWidget.__init__(self, parent)

        format = QAudioFormat()
        format.setChannels(1)
        format.setFrequency(48000)
        format.setSampleSize(16)
        #format.setCodec("audio/pcm")
        format.setCodec("audio/wav")
        format.setByteOrder(QAudioFormat.LittleEndian)
        format.setSampleType(QAudioFormat.SignedInt)
        self.output = QAudioOutput(format, self)

        self.file=QFile()
        self.file.setFileName("C:\\delete_2.wav")
        self.file.open(QIODevice.ReadOnly)

        self.output.start(self.file)

        #self.file.close()

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = Window()
    #window.show()
    sys.exit(app.exec_())

2 个答案:

答案 0 :(得分:1)

self.file.seek(44)

是跳过文件头,但44不是固定大小。之后是音频数据

答案 1 :(得分:0)

啊,如果有

,开头的噪音就会消失
self.file.seek(44)

self.file.open(...)

这是什么“寻求”的东西?发现它是一个片段,很高兴它有效,但我想了解背景!