Librosa音频处理(一)

8 篇文章 4 订阅
6 篇文章 9 订阅

Librosa是一个用于音乐和音频分析的python包,如果没学过《数字信号处理》需要先了解一下相关的基础知识,傅立叶变换梅尔频率倒谱

安装:pip install librosa

环境:Python3.6

 

  1. 我们先做个简单的变声
    import librosa
    y,sr = librosa.load("/Users/birenjianmo/Desktop/learn/librosa/mp3/in.wav")
    # 通过改变采样率来改变音速,相当于播放速度X2
    librosa.output.write_wav("resample.wav",y,sr*2)
    import librosa
    y,sr = librosa.load("/Users/birenjianmo/Desktop/learn/librosa/mp3/in.wav")
    # 通过移动音调变声 ,14是上移14个半步, 如果是 -14 下移14个半步
    b = librosa.effects.pitch_shift(y, sr, n_steps=14)
    librosa.output.write_wav("pitch_shift.wav",b,sr)

     

  2. 复杂的变声

    import librosa 
    import matplotlib.pyplot as plt
    import numpy as np
    y,sr = librosa.load("/Users/birenjianmo/Desktop/learn/librosa/mp3/in.wav")
    
    
    # stft 短时傅立叶变换
    a = librosa.stft(y)
    length = len(a)
    
    # 改变或去除某些值,可以改变声音
    r_a = a[10:length-10]
    
    # istft 逆短时傅立叶变换,变回去
    b = librosa.istft(r_a)
    
    librosa.output.write_wav("stft.wav",b,sr)
    
    # 以下是显示频谱图
    fig = plt.figure()
    s1 = fig.add_subplot(3,1,1)
    s2 = fig.add_subplot(3,1,2)
    s3 = fig.add_subplot(3,1,3)
    
    s1.plot(y)
    s2.plot(a)
    s3.plot(b)
    
    plt.show()
    

     

变音的主要算法原理

     最简单的是:通过对语音的采样率进行变化,就能改变声音,但是不易用参数进行控制。

    别外一种是:提取反应该个性的参数,如,男人、女人;小孩和老人,因声道的长度不一样,导致其基音不一样,进而导致各谐振峰不一样。我们可能通过改变基音和谐振峰的位置来改变声音。

男女声变调必须是进行频谱搬移,在信号处理上通常是乘一个余弦函数   
  下面是男女声的频谱范围:   
  男低音:82--330           女175--699   
  男中音;98--392               220--880       
  男高音;124--494             262--1047   
  单位为hz   

上述转自:https://blog.csdn.net/jinbing/article/details/5199605

 

  • 8
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值