有很多小问题,可能因为基础不扎实,所以还请大侠们赐教。

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语音转换文字,语音转换 有没有做这方面的大侠,大家一起来交流一下经验...相关推荐

  1. 语音广播服务器,网络语音广播主机-文字语音转换设备 - 航天信广

    网络语言广播主机 专业的TTS网络语音广播主机是文字转语音播音系统的专业转换设备,安装在需要将文字转换成语音直接播音的场所,为现代化网络广播系统提供了方便,直接将文字转换成语音,可与数字IP广播服务器 ...

  2. 语音自动识别文字软件

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 腾讯云语音识别(asr) 为开发者提供语音转文字服务的最佳体验. 语音识别服务具备 ...

  3. 语音识别如何操作?这种语音转文字方法也太好用了吧,简单高效

    原标题:语音识别如何操作?这种语音转文字方法也太好用了吧,简单高效 语音识别是现在很多人都想了解的概念,其实语音识别就是将语音转换成文字.目前的需求还是蛮大的,尤其是会议纪要.演讲采访.音频文件整理成 ...

  4. 电脑wps可以语音录入吗_怎样用word进行语音录入文字

    怎样用 word 进行语音录入文字 有时候我们不方便手敲键盘输入时,可以利用 word 的语音录入功能进行输入. 以下是学习啦小编为您带来的关于用 Word 进行语音录入文字,希望对您有所帮助. 用 ...

  5. Ubuntu20.04 使用Python实现全过程离线语音识别(包含语音唤醒,语音转文字,指令识别,文字转语音)

    一.简单说点   因为手头有一个项目,该项目需要在香橙派上实现语音控制,并且带有语音唤醒功能.简单来说,就是通过唤醒词唤醒香橙派,然后说出相关指令,香橙派去执行指令.   但是,在弄香橙派的时候,自带 ...

  6. Android 科大讯飞 语音转文字

    Android 科大讯飞 语音转文字 语音听写SDK适配安卓6.0需要手动申请权限,各位可以自信查询资料实现,关于语音听写SDK的开发,参考科大讯飞开放平台官网为准 第一,首先去科大讯飞官网注册一个账 ...

  7. 如何将文字转换成语音?文字转语音哪个工具好

    估计很多人一看到这个题目,马上就会站起来说,文字还能转语音?当然是啦,文字转语音有两种用处,一类是为了配视频的音频,另外一类是为了发布到音频自媒体平台,所有能用音频的自媒体平台都可以上传,这样就实现了 ...

  8. 长按发送语音_MIUI 11指尖通话功能,实现语音文字实时转换,米粉值得一试!...

    现在的手机功能是越来越强大了,也为我们的生活带来了很多便利,而小米的MIUI系统就是其中之一,大大方便了我们的工作和生活~ 今天小编就和大家说一说小米手机中的语音功能,不知道在看的小伙伴都了解多少呢? ...

  9. python语音转文字软件_python编写语音转文字软件|语音转文字工具免费版下载(语音批量转换文字) v2.0 最新版_数码资源网...

    没有专业的工具怎么能够将语音转换为文字呢?小编为大家提供了语音转文字工具免费版,一款通过Python编写语音转文字软件.用户通过使用语音转文字工具免费版,可以将语音批量转换文字,而且操作也是非常的简单 ...

最新文章

  1. Kibana:分析及可视化日志文件
  2. Make sure the device specification refers to a valid device
  3. 10、springboot之集成druid
  4. Vue.js-Day01-PM【事件绑定(事件传参、事件对象、传参+获取事件对象)、样式处理操作(模板、事件、属性绑定)、Tab切换(原生js实现、Vue.js实现)、js中的this详解关键字】
  5. 简单动态规划问题分析
  6. 使用Mongo索引需要注意的几个点
  7. 北妈每日一题:如何拿到 金条、蛋糕和大钻石
  8. ReflectionPad2d--利用输入边界的反射来填充输入张量
  9. 2018-03-02 GNUtls 对 TPM1.2 的原生支持
  10. 我的2017之一只混迹于小城市的.net程序猿
  11. 华为2019网络挑战赛初赛网络方向部分模拟题及答案
  12. 一款开源免费的网站监控系统
  13. Cython三分钟入门
  14. 苹果手机语音备忘录在哪_手机备忘录在哪
  15. Python 模拟登录知乎
  16. vscode编译Window c++程序缺少vc运行库解决方法
  17. 【信息收集】用python获取IP信息(六)
  18. java 环境变量 locale_locale的设定及其LANG、LC_ALL、LANGUAGE环境变量的区别
  19. 【转载】双微信分享发生TransactionTooLargeException 异常记录
  20. 物联网调查报告:机遇与挑战

热门文章

  1. Grammarly--你的英文写作纠错助手
  2. 企业数字化不是各自发展,而是全面SaaS化推进
  3. Windows Server 2012 R2桌面化详细设置图解
  4. 灵魂不改,理念不改,不能成事,所以找一个有这样理念的人就OK
  5. 每日一个Linux命令之mv命令
  6. Centos7常用命令合集
  7. 基于pytorch实现Word2Vec(skip-gram+Negative Sampling)
  8. 超静音服务器性能强,超静音办公室专用 戴尔T20微服务器评测
  9. 再读新疆系列(一)——穿越准葛尔盆地
  10. Docker-java api简介