【语音处理】音频信号提取分析含Matlab源码
1 简介
MATLAB是十分强大的用于数据分析和处理的工程实用软件,利用其来进行语音信号的分析,处理和可视化十分便捷.文中介绍了在 MATLAB环境中如何驱动声卡采集语音信号和语音信号采集后的文档处理方法,并介绍了 FFT 频谱分析原理及其显示,MATLAB中相关函数的功能,滤波器的设计和使用.在此基础上,对实际采集的一段含噪声语音信号进行了相关分析处理,结果表明利用 MATLAB处理语音信号十分简单,方便且易于实现.
2 部分代码
clc;
clear;
close all;
%获得数据长度
filepath = '语音素材/speaking.wav';
fileID = fopen(filepath);
A = fread(fileID);
%声道数
info.channels_num = add_helper(A,23,2);%在第24和23位,24位为高位
fprintf('声道数为%d位\n',info.channels_num);
%采样频率
info.fs = add_helper(A,25,4);%从25位开始,持续4位
fprintf('采样频率为%d位\n',info.fs);
%取样位数
info.bits_per_sample = add_helper(A,35,2);
fprintf('取样位数为%d位\n',info.bits_per_sample);
%数据长度,因为这里有一个数据类型转换两个byte才被视为一个数据值
data_length = add_helper(A,75,4);
[info.data_length,info.data_length_type] = calculate_file_len(data_length);
fprintf('数据长为%.2f %s\n',info.data_length,info.data_length_type);
%文件长
[info.file_length,info.file_length_type] = calculate_file_len(length(A));
fprintf('文件长为%.2f %s\n',info.file_length,info.file_length_type);
%因为是将两字节数据视为1个数据,所以要除以2,因为只取一个声道故需要处理声道数
info.real_length = data_length/info.channels_num/2;
%音频长度
info.music_length = roundn(info.real_length/info.fs,-2);
fprintf('音频文件长度为%.2f s\n',info.music_length);
%与采样位数有关,多少Byte合成一位
val = info.bits_per_sample/8;
%左声道数据
left_wav = zeros(info.real_length/2/val,1);
%右声道数据
right_wav = zeros(info.real_length/2/val,1);
for i = 0:info.real_length-1
left_wav(i+1) = add_helper(A,79+i*4,2);
right_wav(i+1) = add_helper(A,79+i*4+val,2);
end
[x,fs] = audioread(filepath,'double');
% figure;
% subplot(2,1,1)
% plot(left_wav);
% subplot(2,1,2)
% plot(right_wav);
Hex_A = dec2hex(A);
% A表示wav文件数据
% start表示起始位
% total表示总位数
% return 得到的十进制数据
function tmp = add_helper(A,start,total)
tmp = A(start+total-1);
for i=total-2:-1:0
tmp = tmp*16*16+A(start+i);
end
end
% A表示wav文件数据
% return file_length表示文件长度
% return len_type表示长度对应类型,有B,KB,MB,GB
function [len,len_type]=calculate_file_len(native_A)
len = native_A;
len_index = 1;
len_list = {'B','KB','MB','GB'};
while len >= 1024
len = len/1024;
len_index = len_index+1;
end
%保留两位小数
len = roundn(len,-2);
len_type = len_list{len_index};
end
3 仿真结果
4 参考文献
[1]黄春燕, 景妮洁, 祝红梅. 语音信号的MATLAB分析与处理[J]. 计算机科学, 2018, 45(B06):4.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
【语音处理】音频信号提取分析含Matlab源码相关推荐
- 【语音分析】语音信号分析含Matlab源码
1 简介 语音信号处理技术是语音处理领域中新近发展起来的一个学科分支,MATLAB是一个数据分析和处理功能十分强大的工程实用软件,运用它来进行语音信号的采集,分析和处理相当便捷.文章介绍了在Matla ...
- 【信号处理】语音信号线性预测(LPC)分析含Matlab源码
1 简介 线性预测技术作为一种基于全极点模型假定和均方预测误差最小准则下的波形逼近技术.本文简要介绍了LPC技术的基本原理,并利用MATLAB这一有力工具对语音信号进行了LPC分析,并对阶数的选取做了 ...
- 【语音隐写】基于matlab小波变换量化音频数字水印【含Matlab源码 351期】
⛄一.小波变换量化音频数字水印简介 随着计算机和网络的飞速发展,人们的许多创作和成果都以数字形式进行存储和发布.然而,数字作品极易被非法拷贝.伪造和窜改,使得很多版权所有者不愿意利用网络公开其作品,从 ...
- 【图像去噪】基于小波变换实现图像去噪分析含Matlab源码
1 简介 在图像处理过程中,图像噪声对图像的后续处理和清晰度影响较大.因此,对图像的降噪至关重要.随着小波变换的不断优化,小波变换广泛应用在图像降噪方面.该文基于软阈值的小波图像增强方法,通过实验论述 ...
- matlab svm 语音识别,【情感识别】基于matlab支持向量机(SVM)的语音情感识别【含Matlab源码 543期】...
一.简介 支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本.非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数 ...
- 【数字信号】基于matlab GUI多音双频(DTMF)拨号音频解码仿真系统【含Matlab源码 1084期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[数字信号]基于matlab GUI多音双频(DTMF)拨号音频解码仿真系统[含Matlab源码 1084期] 点击上面蓝色字体,直接付费 ...
- 【Matlab语音隐写】DWT音频数字水印【含GUI源码 712期】
一.代码运行视频(哔哩哔哩) [Matlab语音隐写]DWT音频数字水印[含GUI源码 712期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊, ...
- 【优化运行】基于matlab高比例风电电力系统储能运行及配置分析【含Matlab源码 2273期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[微电网优化]基于matlab求解含电热联合系统的微电网运行优化问题[含Matlab源码 2265期] 点击上面蓝色字体,直接付费下载,即 ...
- 【语音合成】基于matlab线性预测共振峰检测和基音参数语音合成【含Matlab源码 562期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[语音合成]基于matlab线性预测共振峰检测和基音参数语音合成[含Matlab源码 562期] 点击上面蓝色字体,直接付费下载,即可. ...
最新文章
- 【学神-RHEL7】1-4-1-Linux文件管理和恢复误删除的文件
- 2020人工智能全球女性榜发布,致敬这些杰出的女科学家
- UDP转TCP隧道工具udptunnel
- 利用Docker搭建Redis主从复制集群
- 压缩信息立方体和集合技术内幕
- BOMHEAD display issue
- C++一天一个程序(二)
- php删除第一个字母,php – 正在上传的文件将第一个字母切断
- jquery.formValidator表单验证语法
- php如何利用soap查看函数,使用PHP soap函数的自定义标题
- 春晚红包:挺住的百度和崩坏的应用商店
- 博学谷html css,博学谷 - CSS笔记12 - 清除浮动
- yzmcms图片自适应代码_基于segment.js制作的非常有创意的分段式SVG文字动画特效...
- java代码继承------多层继承
- “NLP的那些事儿”开张了!
- PHP学习笔记1:基础知识快速浏览
- SQL Server2005如何进行数据库定期备份
- 眼下精准吸引上万的粉丝课程,海风通过豆瓣被动引流思路
- 50种让你的网站被关注的方法
- [机器学习与scikit-learn-15]:算法-决策树-分类问题代码详解
热门文章
- 安华金和成为阿里“数据安全合作伙伴计划”首批成员
- 手动去迅雷广告,加速迅雷启动方法
- 使用udig配置数据样式(四)——配置点图层样式
- html字典标签图片,HTML img 标签
- 蓝屏0x00000077详解
- 直播市场规模有限,差异化竞争成行业必然趋势
- 【推荐】Github 上的一份数据科学相关的知识速查表, 标星17K多!!
- python新书 代码_黄哥Python,2018年Python新书推荐
- Python线、四边形、三角形画法
- Vue+ElementUI一个简单登录界面