官方手册

源码


安装库

pip install audiotsm

导入相关库

import audiotsm
import audiotsm.io.wav
import audiotsm.io.array

定义reader

# 可以直接读取文件
reader = audiotsm.io.wav.WavReader("qaq.wav")
'''
# 也可以加载别的地方传过来的numpy.ndarray音频数据
a, sr = sf.read("qaq.wav", dtype='float32')
a = a.reshape((1,-1))    # (1,-1):(通道数,音频长度)
reader = audiotsm.io.array.ArrayReader(a)
'''

![]( https://img-blog.csdnimg.cn/20210811095346181.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTQ0MzEx,size_16,color_FFFFFF,t_70)

定义writer

# 可以直接写入文件
writer =  audiotsm.io.wav.WavWriter("awa.wav", 1, 16000)    # 1:单通道。  16000:采样率
# 也可以直接获得numpy.ndarray的数据
# writer = audiotsm.io.array.ArrayWriter(1)

直接写入文件的方法亲测可用。

直接获得numpy.ndarray数据的方法存在问题,找不到它输出的数据到底在哪,目前尚未解决。

![]( https://img-blog.csdnimg.cn/20210811095431486.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTQ0MzEx,size_16,color_FFFFFF,t_70)

![]( https://img-blog.csdnimg.cn/20210811095451975.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTQ0MzEx,size_16,color_FFFFFF,t_70)

定义WSLOA算法,并运行

wsola = audiotsm.wsola(1, speed=1.5)    # 1:单通道。  speed:速度
wsola.run(reader, writer)

![]( https://img-blog.csdnimg.cn/2021081109530139.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTQ0MzEx,size_16,color_FFFFFF,t_70)

还有其他的变速不变调算法和实时输入输出的函数,详见官方手册

posted on 2023-01-30 13:16  KAWAKO  阅读(609)  评论(0)    收藏  举报