matlab语音转换文字,语音转换 有没有做这方面的大侠,大家一起来交流一下经验...
有很多小问题,可能因为基础不扎实,所以还请大侠们赐教。
1.语音分析之前要进行信号的预处理,包括A/D,预加重,分帧加窗,端点检测等。其中保存为.WAV格式就已经经过了采样和量化,即进行了A/D转换。预加重采用s=filter([1 -0.9375],1,x),分帧采用voicebox工具箱中的分帧函数enframe,y=enframe(s,hamming(framelen),framelnc ),端点检测是采用短时能量和短时过零率的双门限法,代码如下:
[x,fs,nbits]=wavread('aaaa.wav');
x=double(x);
x=x/max(abs(x)); %幅度归一化到[-1,1]
%参数设置
framelen=256; %帧长
framelnc=128; %帧移
amp1=10; %初始短时能量高门限,这是一个经验值
amp2=2; %初始短时能量低门限
zcr1=10; %初始过零率高门限
zcr2=5; %初始过零率低门限
maxsilence=6; %3*10ms=30ms语音段中允许的最大静音长度。如果语音段中的静音帧数未超过此值,则认为语音段还没结束。
%如果超过了该值,则对语音段长度count进行判断,若count
%跳到静音状态0;若count>minlen,则认为语音段结束。
minlen=15; %15*10ms=150ms语音段最短长度
status=0; %记录语音段的状态
count=0; %语音序列的长度
silence=0; %无声的长度
%计算过零率
tmp1=enframe(x(1:end-1),hamming(framelen),framelnc);
tmp2=enframe(x(2:end),hamming(framelen),framelnc);
signs=(tmp1.*tmp2)<0;
diffs=(tmp1-tmp2)>0.02;
zcr=sum(signs.*diffs,2);
%计算短时能量
amp=sum(abs(enframe(filter([1 -0.9375],1,x),hamming(framelen),framelnc)),2);
%调整能量门限
amp1=min(amp1,max(amp)/4);
amp2=min(amp2,max(amp)/8);
%开始端点检测
x1=0;
x2=0;
for n=1:length(zcr) %从这里开始是整个程序的思路,length(zcr)得到的是整个信号的帧数
goto=0;
switch status
case {0,1} %0=静音,1=可能开始
if amp(n)>amp1 %确信进入语音段
x1=max(n-count-1,1); %记录语音段的起始点
status=2;
silence=0;
count=count+1;
elseif amp(n)>amp2|zcr(n)>zcr2 %可能处于语音段
status=1;
count=count+1;
else %静音状态
status=0;
count=0;
end
case 2, %2=语音段
if amp(n)>amp2|zcr(n)>zcr2 %保持在语音段
count=count+1;
else %语音即将结束
silence=silence+1;
if silence
count=count+1;
elseif count
status=0;
silence=0;
count=0;
else %语音结束
status=3;
end
end
case 3,
break;
end
end
count=count-silence/2;
x2=x1+count-1; %记录语音段结束点
请问这里为什么只有短时能量运用的预加重,而短时过零率没有用?不是整个信号先进行预加重,再分帧进行端点检测吗?
2.端点检测后的信号就可以用做接下来语音特征提取的语音信号了,那接下来还用进行归一化,预加重,加窗分帧吗?曾看到这样一个程序:
s=wavread('aaaa.wav');
s=vadhou(s,256,128);%这个调用的是端点检测的程序,出来的结果就是去除了无效声段的信号
ss=double(s);
ss=ss/max(abs(ss));
ss=filter([1 -0.9375],1,ss);
ss=enframe(ss,hamming(256),128);
k=14; %线性预测系数的阶数
for i=1:size(ss,1)
s=ss(i,:);
a=lpc(s,k);
c=cceps(a);
m(i,:)=c(2:k+1)';
end
端点检测后为什么要再进行归一化,预加重和分帧呢?下面的循环程序能给解释一下吗?
matlab语音转换文字,语音转换 有没有做这方面的大侠,大家一起来交流一下经验...相关推荐
- 语音广播服务器,网络语音广播主机-文字语音转换设备 - 航天信广
网络语言广播主机 专业的TTS网络语音广播主机是文字转语音播音系统的专业转换设备,安装在需要将文字转换成语音直接播音的场所,为现代化网络广播系统提供了方便,直接将文字转换成语音,可与数字IP广播服务器 ...
- 语音自动识别文字软件
广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 腾讯云语音识别(asr) 为开发者提供语音转文字服务的最佳体验. 语音识别服务具备 ...
- 语音识别如何操作?这种语音转文字方法也太好用了吧,简单高效
原标题:语音识别如何操作?这种语音转文字方法也太好用了吧,简单高效 语音识别是现在很多人都想了解的概念,其实语音识别就是将语音转换成文字.目前的需求还是蛮大的,尤其是会议纪要.演讲采访.音频文件整理成 ...
- 电脑wps可以语音录入吗_怎样用word进行语音录入文字
怎样用 word 进行语音录入文字 有时候我们不方便手敲键盘输入时,可以利用 word 的语音录入功能进行输入. 以下是学习啦小编为您带来的关于用 Word 进行语音录入文字,希望对您有所帮助. 用 ...
- Ubuntu20.04 使用Python实现全过程离线语音识别(包含语音唤醒,语音转文字,指令识别,文字转语音)
一.简单说点 因为手头有一个项目,该项目需要在香橙派上实现语音控制,并且带有语音唤醒功能.简单来说,就是通过唤醒词唤醒香橙派,然后说出相关指令,香橙派去执行指令. 但是,在弄香橙派的时候,自带 ...
- Android 科大讯飞 语音转文字
Android 科大讯飞 语音转文字 语音听写SDK适配安卓6.0需要手动申请权限,各位可以自信查询资料实现,关于语音听写SDK的开发,参考科大讯飞开放平台官网为准 第一,首先去科大讯飞官网注册一个账 ...
- 如何将文字转换成语音?文字转语音哪个工具好
估计很多人一看到这个题目,马上就会站起来说,文字还能转语音?当然是啦,文字转语音有两种用处,一类是为了配视频的音频,另外一类是为了发布到音频自媒体平台,所有能用音频的自媒体平台都可以上传,这样就实现了 ...
- 长按发送语音_MIUI 11指尖通话功能,实现语音文字实时转换,米粉值得一试!...
现在的手机功能是越来越强大了,也为我们的生活带来了很多便利,而小米的MIUI系统就是其中之一,大大方便了我们的工作和生活~ 今天小编就和大家说一说小米手机中的语音功能,不知道在看的小伙伴都了解多少呢? ...
- python语音转文字软件_python编写语音转文字软件|语音转文字工具免费版下载(语音批量转换文字) v2.0 最新版_数码资源网...
没有专业的工具怎么能够将语音转换为文字呢?小编为大家提供了语音转文字工具免费版,一款通过Python编写语音转文字软件.用户通过使用语音转文字工具免费版,可以将语音批量转换文字,而且操作也是非常的简单 ...
最新文章
- Kibana:分析及可视化日志文件
- Make sure the device specification refers to a valid device
- 10、springboot之集成druid
- Vue.js-Day01-PM【事件绑定(事件传参、事件对象、传参+获取事件对象)、样式处理操作(模板、事件、属性绑定)、Tab切换(原生js实现、Vue.js实现)、js中的this详解关键字】
- 简单动态规划问题分析
- 使用Mongo索引需要注意的几个点
- 北妈每日一题:如何拿到 金条、蛋糕和大钻石
- ReflectionPad2d--利用输入边界的反射来填充输入张量
- 2018-03-02 GNUtls 对 TPM1.2 的原生支持
- 我的2017之一只混迹于小城市的.net程序猿
- 华为2019网络挑战赛初赛网络方向部分模拟题及答案
- 一款开源免费的网站监控系统
- Cython三分钟入门
- 苹果手机语音备忘录在哪_手机备忘录在哪
- Python 模拟登录知乎
- vscode编译Window c++程序缺少vc运行库解决方法
- 【信息收集】用python获取IP信息(六)
- java 环境变量 locale_locale的设定及其LANG、LC_ALL、LANGUAGE环境变量的区别
- 【转载】双微信分享发生TransactionTooLargeException 异常记录
- 物联网调查报告:机遇与挑战