利用python中的
   
    librosa.load()
   
   我们可以轻松的读取音频文件,但对于不同采样率的音频文件,使用这一函数有一些细节还需注意。
  
  
   如果
   
    sr
   
   缺省,librosa会默认以22050的采样率读取音频文件,
   
    高于该采样率的音频文件会被下采样,低于该采样率的文件会被上采样
   
   。
  
  
   如果希望以原始采样率读取音频文件,
   
    sr
   
   应当设为
   
    None
   
   。
   
    具体做法为
    
     y, sr = librosa(filename, sr=None)
    
   
   。
  
  
   
    https://librosa.github.io/librosa/generated/librosa.core.load.html
   
  
  利用python中的 librosa.load() 我们可以轻松的读取音频文件,但对于不同采样率的音频文件,使用这一函数有一些细节还需注意。如果 sr 缺省,librosa会默认以22050的采样率读取音频文件,高于该采样率的音频文件会被下采样,低于该采样率的文件会被上采样。如果希望以原始采样率读取音频文件,sr 应当设为 None。具体做法为 y, sr = librosa(filename...
  
   
    Lib
   
   
    ros
   
   a是一个用于音乐和
   
    音频
   
   分析的python包,如果没学过《数字信号
   
    处理
   
   》需要先了解一下相关的基础知识,傅立叶变换,梅尔频率倒谱
安装:pip install
   
    lib
   
   
    ros
   
   a
环境:Python3.6
我们先做个简单的变声
import
   
    lib
   
   
    ros
   
   a
y,sr =
   
    lib
   
   
    ros
   
   a.
   
    load
   
   ("/Users/birenjianmo/Desktop/learn/
   
    lib
   
   
    ros
   
   a...
  
  
   
    Lib
   
   
    ros
   
   a简介
   
    Lib
   
   
    ros
   
   a是一个 Python 模块,用于分析一般的
   
    音频
   
   信号,是一个非常强大的python语音信号
   
    处理
   
   的第三方库,根据网络资料以及官方教程,本文主要总结了一些重要且常用的功能。#安装
!pipinstall
   
    lib
   
   
    ros
   
   aLooking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Re...
  
  
   PCM格式
   
    音频
   
   数据的
   
    读取
   
   PCM格式
   
    音频
   
   文件比方方式采用Audacity软件播放。具体实现过程:打开软件–>导入–>原始数据,修改编码:Signed 16bit PCM;字节序:小尾端,声道:单声道和双声道(立体声);
   
    采样率
   
   根据实际填写,快鱼的拾音器的
   
    采样率
   
   为16000Hz
python实现PCM格式
   
    音频
   
   文件的加载
PCM里仅保留了数据,没有
   
    采样率
   
   值和通道值。
   
    采样率
   
   是16bit、32bit float等参数采样。
import array
import os
from matplot
   
    lib
   
   im
  
  extract log mel spectrogram feature
    :param y: the input signal (audio time series)
    :param sr: sample rate of 'y'
    :param size: the length (seconds) of random crop from original audio, default as 3 seconds
    :return: log-mel spectrogram feature
    # normalization
    y = y.astype(np.float32)
    normalization_factor = 1 / np.max(np.abs(y))
    y = y * normalization_factor
    # random crop
    start = random.randint(0, len(y) - size * sr)
    y = y[start: start + size * sr]
    # extract log mel spectrogram #####
    powerspec = np.abs(
  
   lib
  
  
   ros
  
  a.stft(y,n_fft=128, hop_length=1024)) ** 2
    #logmelspec =
  
   lib
  
  
   ros
  
  a.power_to_db(melspectrogram)
    return powerspec
def extract_logmel(y, sr, size=3):
    extract log mel spectrogram feature
    :param y: the input signal (audio time series)
    :param sr: sample rate of 'y'
    :param size: the length (seconds) of random crop from original audio, default as 3 seconds
    :return: log-mel spectrogram feature
    # normalization
    y = y.astype(np.float32)
    normalization_factor = 1 / np.max(np.abs(y))
    y = y * normalization_factor
    # random crop
    start = random.randint(0, len(y) - size * sr)
    y = y[start: start + size * sr]
    # extract log mel spectrogram #####
    melspectrogram =
  
   lib
  
  
   ros
  
  a.feature.melspectrogram(y=y, sr=sr, n_fft=2048, hop_length=1024, n_mels=90)
    logmelspec =
  
   lib
  
  
   ros
  
  a.power_to_db(melspectrogram)
    return logmelspec
def extract_mfcc(y, sr, size=3):
    extract MFCC feature
    :param y: np.ndarray [shape=(n,)], real-valued the input signal (audio time series)
    :param sr: sample rate of 'y'
    :param size: the length (seconds) of random crop from original audio, default as 3 seconds
    :return: MFCC feature
    # normalization
    y = y.astype(np.float32)
    normalization_factor = 1 / np.max(np.abs(y))
y, sr =
  
   lib
  
  
   ros
  
  a.core.
  
   load
  
  ('audio_file.wav')
其中,'audio_file.wav' 是你要加载的
  
   音频
  
  文件的路径,y 是加载后的
  
   音频
  
  数据,sr 是
  
   采样率
  
  。
你可以通过以下方式获取
  
   音频
  
  的时长:
duration =
  
   lib
  
  
   ros
  
  a.core.get_duration(y=y, sr=sr)
其中,duration 是
  
   音频
  
  的时长,单位为秒。