美文网首页媒体技术相关
音频编码之Python播放声音

音频编码之Python播放声音

作者: 废柴联盟荣誉盟友 | 来源:发表于2018-12-26 10:25 被阅读14次

在Python中播放向量声音。

需要的库有:

numpypyaudio

在终端使用conda安装:

conda install -c anaconda numpy

conda install -c anaconda pyaudio

代码如下:

#引入库

import numpy as np

import pyaudio

#定义播放函数和输入数据

def play(sound,FS):

#sound 为输入的声音数据,格式为向量或数列,FS为采样频率

    CHUNK=1024 #Samples per Blocksize,数据流块大小

    WIDTH=2 #2 Bytes per Sample,每个采样的大小

    CHANNELS=1 #Channels,声道数量

    RATE = FS  #Sampling Rate in Hz,采样频率

    p = pyaudio.PyAudio() 

    #打开并定义数据流格式

    stream = p.open(format=p.get_format_from_width(WIDTH),

                                channels=CHANNELS,

                                rate=RATE,

                                input=False,

                                output=True,

                                frames_per_buffer=CHUNK)

    for i in range(0, int(len(sound) / CHUNK) ):

        #把sound文件中的正数量化成比特

        samples=sound[i*CHUNK:((i+1)*CHUNK)];

        samples=clip(samples,-2**15,2**15-1)

        #播放

        stream.write(samples.astype(np.int16),len(samples))

    #播放完成,停止数据流

    stream.stop_stream()

    stream.close()

相关文章

网友评论

    本文标题:音频编码之Python播放声音

    本文链接:https://www.haomeiwen.com/subject/daiclqtx.html