我试图在Matlab中找到与soundsc()
和sound()
对应的函数。基本上,我想通过播放NumPy数组中包含的样本来听声音。这样做有什么功能吗?
答案 0 :(得分:0)
我不确定是否存在numpy
函数来执行此操作,但您可以使用scipy.io.wavfile
中的Walk through all XML nodes in an element-nested structure将数组(只要它包含整数)转换为wav文件,然后播放文件。
我还没有详细介绍,但我认为this function在Python中引用了有用的声音工具。
修改:另请参阅this page
答案 1 :(得分:0)
这适用于Linux& MAC
大多数Linux计算机预先安装了vox
库,让您可以从命令行播放音频。
因此假设您使用scipy.io.write
将数组写入wave文件,您可以使用subprocess
模块在Python程序中播放它。
这是一个完整的例子:
from scipy.io.wavfile import write
import numpy as np
fs = 44100 # sampling frequency
input_array = np.random.rand(fs*2) # 2 seconds audio
write('output.wav', fs, input_array)
# now that file is written to the disk - play it
import subprocess
subprocess.call(["play", 'output.wav']) <- for linux
subprocess.call(["afplay", 'output.wav']) <- for Mac
对于Windows,据我所知,没有内置的命令行播放器 - 因此您可能需要安装一些程序,以便在使用上述代码之前执行此操作。