codecamp

AI人工智能 从语音中提取特征

这是构建语音识别器最重要的步骤,因为在将语音信号转换到频域后,我们必须将其转换为可用的特征向量形式。为此,我们可以使用不同的特征提取技术,如 MFCC、PLP、PLP-RASTA 等。

示例

在以下示例中,我们将逐步使用 Python 通过 MFCC 技术从信号中提取特征。

导入必要的包,如下所示:

import numpy as np
import matplotlib.pyplot as plt
from scipy.io import wavfile
from python_speech_features import mfcc, logfbank

现在,读取存储的音频文件。它将返回两个值:采样频率和音频信号。提供音频文件存储的路径:

frequency_sampling, audio_signal = wavfile.read("/Users/admin/audio_file.wav")

请注意,这里我们取前 15000 个样本进行分析:

audio_signal = audio_signal[:15000]

使用 MFCC 技术并执行以下命令提取 MFCC 特征:

features_mfcc = mfcc(audio_signal, frequency_sampling)

现在,打印 MFCC 参数,如下所示:

print('\nMFCC:\nNumber of windows =', features_mfcc.shape[0])
print('Length of each feature =', features_mfcc.shape[1])

现在,使用以下命令绘制并可视化 MFCC 特征:

features_mfcc = features_mfcc.T
plt.matshow(features_mfcc)
plt.title('MFCC')

在这一步中,我们处理滤波器组特征,如下所示:

提取滤波器组特征:

filterbank_features = logfbank(audio_signal, frequency_sampling)

现在,打印滤波器组参数:

print('\nFilter bank:\nNumber of windows =', filterbank_features.shape[0])
print('Length of each feature =', filterbank_features.shape[1])

现在,绘制并可视化滤波器组特征:

filterbank_features = filterbank_features.T
plt.matshow(filterbank_features)
plt.title('Filter bank')
plt.show()

作为上述步骤的结果,您可以观察到以下输出:图 1 为 MFCC,图 2 为滤波器组

AI人工智能 生成单音音频信号
AI人工智能 口语词的识别
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

AI人工智能监督学习(回归)

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }