👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化【获取源码+商业合作】
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。
【matlab】matlab实现倒谱法基音频率检测和共振峰检测(源码+音频文件)【独一无二】
目录
- 【matlab】matlab实现倒谱法基音频率检测和共振峰检测(源码+音频文件)【独一无二】
- 一、设计要求
- 二、代码分析
一、设计要求
倒谱法对汉语a和英语A进行基音频率检测和共振峰检测 读取chinese_a.m4a和english_A.m4a 文件 ,给出matlab代码 频率检测和共振峰检测放在同一张图。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 倒谱” 获取。👈👈👈
二、代码分析
设计思路是用于比较汉语音频和英语音频中的基音频率和共振峰:
-
清除环境变量:
clear
和clc
函数用于清除 MATLAB 工作空间和命令窗口中的变量和命令历史记录,确保开始时环境清洁。% 清除环境变量 clear; % 清除 MATLAB 工作空间中的所有变量 clc; % 清除 MATLAB 命令窗口中的所有文本和命令历史记录
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 倒谱” 获取。👈👈👈
-
读取音频文件:使用
audioread
函数读取两个音频文件,并将它们存储在变量chinese_a
和english_A
中,同时记录它们的采样率Fs1
和Fs2
。% 读取音频文件 [chinese_a, Fs1] = audioread('chinese_a.m4a'); % 读取汉语音频文件,并获取采样率 [english_A, Fs2] = audioread('english_A.m4a'); % 读取英语音频文件,并获取采样率
-
确保音频数据是单通道:通过
(:,1)
确保音频数据是单通道的。% 确保音频数据是单通道 chinese_a = chinese_a(xxxx); % 提取汉语音频的第一个通道 english_A = english_A(xxxx); % 提取英语音频的第一个通道
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 倒谱” 获取。👈👈👈
-
基音频率检测:使用
pitch
函数检测汉语音频和英语音频的基音频率,并将结果存储在F0_chinese
和F0_english
中。 -
LPC分析的阶数:设置 LPC 分析的阶数为 12,存储在变量
p
中。if size(chinese_a, 2) > 1 % 略..... end if size(english_A, 2) > 1 % 略..... end
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 倒谱” 获取。👈👈👈
-
计算共振峰:通过 LPC 方法计算汉语音频和英语音频的共振峰。这部分的代码使用了信号处理中的 LPC(Linear Predictive Coding)方法,其中
lpc
函数计算 LPC 系数,roots
函数找到 LPC 多项式的根,atan2
函数计算相位角度,最终将频率转换为 Hz 单位。 -
绘制图形:通过
subplot
创建了两个子图,分别用于显示汉语音频和英语音频的基音频率和共振峰。使用plot
函数绘制基音频率曲线,然后使用scatter
函数绘制共振峰,最后添加了标题、横纵坐标标签和图例。👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 倒谱” 获取。👈👈👈
-
显示图形:最后使用
hold off
关闭绘图保持功能,确保下一个绘图不会受到影响。
> 👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 倒谱” 获取。👈👈👈