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