【python】音频降采样

系统 3438 0

这篇文章介绍如何使用python对音频进行降采样。
手上有一批48k采样率的音频,需要将到16k。这里使用python的librosa库来完成。一行代码搞定:

            
              y_48k
              
                ,
              
               sr 
              
                =
              
               librosa
              
                .
              
              load
              
                (
              
              wav_filename
              
                ,
              
              
                48000
              
              
                )
              
              
                # 读取原音频
              
              
y_16k 
              
                =
              
               librosa
              
                .
              
              resample
              
                (
              
              y
              
                =
              
              y_48k
              
                ,
              
               orig_sr
              
                =
              
              
                48000
              
              
                ,
              
               targe_sr
              
                =
              
              
                16000
              
              
                )
              
              
                # 降采样
              
            
          

批量降采样,代码如下

            
              
                # coding: utf-8
              
              
                ###########################################################
              
              
                # TODO: 将VCTK/下的音频48k,降采样为16k,并保存到VCTK_16K/目录下
              
              
                ###########################################################
              
              
                import
              
               librosa  

              
                import
              
               glob  

              
                from
              
               tqdm 
              
                import
              
               tqdm 

              
                import
              
               os 


              
                for
              
               wav 
              
                in
              
               tqdm
              
                (
              
              glob
              
                .
              
              glob
              
                (
              
              
                'VCTK/*/*.wav'
              
              
                )
              
              
                )
              
              
                :
              
              
	audio_48k
              
                ,
              
               sr 
              
                =
              
               librosa
              
                .
              
              load
              
                (
              
              wav
              
                ,
              
              
                48000
              
              
                )
              
              
	audio_16k 
              
                =
              
               librosa
              
                .
              
              resample
              
                (
              
              y
              
                =
              
              audio_48k
              
                ,
              
               orig_sr
              
                =
              
              sr
              
                ,
              
               target_sr
              
                =
              
              
                16000
              
              
                )
              
              
	new_filename 
              
                =
              
               wav
              
                .
              
              replace
              
                (
              
              
                'VCTK'
              
              
                ,
              
              
                'VCTK_16K'
              
              
                )
              
              
	new_file_path 
              
                =
              
               new_filename
              
                .
              
              split
              
                (
              
              os
              
                .
              
              sep
              
                )
              
              
                [
              
              
                0
              
              
                ]
              
              
                +
              
              
                '/'
              
              
                +
              
               new_filename
              
                .
              
              split
              
                (
              
              os
              
                .
              
              sep
              
                )
              
              
                [
              
              
                1
              
              
                ]
              
              
                +
              
              
                '/'
              
              
                if
              
              
                not
              
               os
              
                .
              
              path
              
                .
              
              exists
              
                (
              
              new_file_path
              
                )
              
              
                :
              
              
		os
              
                .
              
              makedirs
              
                (
              
              new_file_path
              
                )
              
              
	librosa
              
                .
              
              output
              
                .
              
              write_wav
              
                (
              
              new_filename
              
                ,
              
               audio_16k
              
                ,
              
              
                16000
              
              
                )
              
            
          

更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论