当前位置:首页 > 代码 > 正文

共振峰提取的代码(提取共振峰的常用方法)

admin 发布:2022-12-19 21:53 174


今天给各位分享共振峰提取的代码的知识,其中也会对提取共振峰的常用方法进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

跪求一个在C++环境下的语音情感状态的源程序!!!小弟实在找不到了!我的邮箱是nightflyrain@yahoo.com.c

发不了……

贴代码:

#include "stdafx.h"

#includeiostream.h

#includestdlib.h

#includestring.h

#includetime.h

class CBoys;

class CGirls{

friend class CBoys;

private:

char Name[25];

};

class CBoys{

private:

char Name[25];

int Charisma; //魅力值

long Money; //财富

int Age; //年龄

int RoseNum; //拥有的玫瑰数

CGirls LoveGirl;

public:

void InPut();

void ConfessingLove(); //表白爱意

void Menu(); //程序选项

void Choose(); //选择

void EarnMoney_AddCharisma(); //赚钱、增加魅力

void Purchase(); //购物

void GiveRose(); //送女孩玫瑰

void Propose(); //向心爱的女孩求婚

};

void CBoys::InPut(){ //输入一些基本信息

Charisma=50; //初始化

Money=30000;

RoseNum=0;

char *name=new char[25];

cout"请输入你的角色名称:"endl;

cinname;

strcpy(Name,name);

delete [] name;

int age;

cout"请输入你的年龄:"endl;

cinage;

Age=age;

}

void CBoys::Menu(){

cout"*****欢迎"Name"来到爱情之旅!******"endl;

cout"***********1.表白**********************"endl;

cout"***********2.挣钱**********************"endl;

cout"***********3.买玫瑰********************"endl;

cout"***********4.送玫瑰********************"endl;

cout"***********5.求婚**********************"endl;

cout"***********0.退出**********************"endl;

}

void CBoys::Choose(){

int choose;

cinchoose;

switch(choose){

case 1: ConfessingLove();break;

case 2 :EarnMoney_AddCharisma();break;

case 3: Purchase();break;

case 4: GiveRose();break;

case 5: Propose();break;

case 0: cout"很遗憾,你未能坚持走完这爱情之路。"endl;

}

}

void CBoys::ConfessingLove(){ //表白 o(∩_∩)o

char *girlname=new char[25];

cout"请输入你心爱的女孩的名字:"endl;

cingirlname;

strcpy(LoveGirl.Name,girlname);

delete [] girlname;

cout"大胆对"LoveGirl.Name"表白吧,你想对她说:"endl;

char *BoyWantToSay=new char[200]; //对女孩表白的话

cinBoyWantToSay;

delete [] BoyWantToSay;

if(Charisma=80Charisma=100)

{

cout"恭喜!魅力超凡的你,经过不懈努力,终于得到了心爱女孩的芳心!魅力+7!"endl;

Charisma+=7;

cout"你的财富:"Moneyendl;

cout"你的魅力:"Charismaendl;

Menu();

Choose();

}

else

{

cout"你的魅力不足80,继续努力哦,还有希望!不过,你敢于表白,魅力+2!接下来你想干什么呢?"endl;

Charisma+=2;

cout"你的财富:"Moneyendl;

cout"你的魅力:"Charismaendl;

Menu();

Choose();

}

}

void CBoys::EarnMoney_AddCharisma(){ //挣钱、加魅力

int response;

int probability; //事件随机概率

cout"**********请选择何种挣钱方式***********"endl;

cout"****************1.做家教***************"endl;

cout"****************2.做打字员*************"endl;

cout"****************3.写小说***************"endl;

cout"****************4.炒股*****************"endl;

cout"****************0.返回*****************"endl;

probability=rand()%10+1;

cinresponse;

switch(response){

case 0 : Menu();Choose();break;

case 1: {

if(probability=7)

{

cout"恭喜,经过你兢兢业业的教育,你教的孩子成功考取了清华,国家奖励你10000元RMB!!魅力+3!"endl;

Money+=10000;

Charisma+=3;

}

else

{

cout"你教的孩子差500分考取清华,反赔了人家5000元RMB。魅力-3"endl;

Money-=5000;

Charisma-=3;

}

cout"你的财富:"Moneyendl;

cout"你的魅力:"Charismaendl;

Menu();

Choose();

}break;

case 2:{

if(probability=6)

{

cout"恭喜!由于你认真努力的打出了高质量的字,老板奖励12000元RMB!魅力+4!"endl;

Money+=12000;

Charisma+=4;

}

else{

cout"由于你打一万字出错七千,险些被读者举报盗版,反赔了5000元。魅力-4。"endl;

Money-=5000;

Charisma-=4;

}

cout"你的财富:"Moneyendl;

cout"你的魅力:"Charismaendl;

Menu();

Choose();

}break;

case 3: {

if(probability=5){

cout"写小说火了,赚了20000!魅力+5!"endl;

Money+=20000;

Charisma+=5;

}

else{

cout"写的小说没人看,赔了6000元。魅力-5."endl;

Money-=6000;

Charisma-=5;

}

cout"你的财富:"Moneyendl;

cout"你的魅力:"Charismaendl;

Menu();

Choose();

}break;

case 4: {

if(probability=4){

cout"股市涨了!赚了30000!魅力+7!"endl;

Money+=30000;

Charisma+=7;

}

else {

cout"股市崩盘,赔了10000!魅力-7!"endl;

Money-=10000;

Charisma-=7;

}

cout"你的财富:"Moneyendl;

cout"你的魅力:"Charismaendl;

Menu();

Choose();

}break;

}

}

void CBoys::Purchase(){

cout"**********************欢迎来到玫瑰乐园!*****************************"endl;

cout"*********你想购买多少玫瑰呢?一朵玫瑰999元,送给女生会+1魅力值哦!******"endl;

int Pur_Rose;

cinPur_Rose;

if(MoneyPur_Rose*999){

cout"钱到用时方恨少啊!你的钱不够,快去赚钱吧!"endl;

Menu();

Choose();

}

else{

RoseNum+=Pur_Rose;

Money-=Pur_Rose*999;

cout"购买成功!你买了"Pur_Rose"朵玫瑰!"endl;

cout"拥有玫瑰:"RoseNumendl;

cout"你的财富:"Moneyendl;

cout"你的魅力:"Charismaendl;

Menu();

Choose();

}

}

void CBoys::GiveRose(){

cout"你现在拥有玫瑰:"RoseNumendl;

cout"你想送多少多玫瑰给她呢?送一朵玫瑰魅力+3哦!"endl;

int GiveNum;

cinGiveNum;

if(GiveNumRoseNum){

cout"你哪有那么多玫瑰!?快去买吧"endl;

Menu();

Choose();

}

else{

cout"你成功送了"GiveNum"朵玫瑰,魅力+"GiveNumendl;

RoseNum-=GiveNum;

Charisma+=GiveNum;

cout"拥有玫瑰:"RoseNumendl;

cout"你的财富:"Moneyendl;

cout"你的魅力:"Charismaendl;

Menu();

Choose();

}

}

void CBoys::Propose(){

char *girlname=new char[25];

cout"请输入你想要求婚的女孩的名字:"endl;

cingirlname;

strcpy(LoveGirl.Name,girlname);

delete [] girlname;

cout"用你最独特的语言来打动"LoveGirl.Name"吧!"endl;

char *BoyWantToSay=new char[200]; //对女孩表白的话

cinBoyWantToSay;

delete [] BoyWantToSay;

if(Money=400000Charisma=90){

cout"恭喜你,由于你的努力"LoveGirl.Name"已经愿意嫁给你!"endl;

}

else{

cout"你还未达到结婚的条件,还需努力啊。提示下哦,想要抱得美人归,你财富至少为40W,魅力至少为90哦!"endl;

Menu();

Choose();

}

}

int main()

{

CBoys boy1;

srand(time(0));

boy1.InPut();

boy1.Menu();

boy1.Choose();

return 0;

}

什么是共振峰?

共振峰是指在声音的频谱中能量相对集中的一些区域,共振峰不但是音质的决定因素,而且反映了声道(共振腔)的物理特征。共振峰是反映声道谐振特性的重要特征,它代表了发音信息的最直接的来源,而且人在语音感知中利用了共振峰信息。所以共振峰是语音信号处理中非常重要的特征参数,已经广泛地用作语音识别的主要特征和语音编码传输的基本信息。共振峰信息包含在频率包络之中,因此共振峰参数提取的关键是估计自然语音频谱包络,一般认为谱包络中的最大值就是共振峰。

哪位大神帮小弟写一段MATLAB提取语音信号共振峰程序

function [fmt] = seekfmts1(sig,Nt,fs,Nlpc)

if nargin4, Nlpc = round(fs/1000)+2; end;

ls=length(sig); % 数据长度

Nwin = floor(ls/Nt); % 帧长

for m=1:Nt,

lpcsig = sig((Nwin*(m-1)+1):min([(Nwin*m) ls]));% 取来一帧信号

if ~isempty(lpcsig),

a = lpc(lpcsig,Nlpc); % 计算LPC系数

const=fs/(2*pi); % 常数

rts=roots(a); % 求根

k=1; % 初始化

yf = [];

bandw=[];

for i=1:length(a)-1

re=real(rts(i)); % 取根之实部

im=imag(rts(i)); % 取根之虚部

formn=const*atan2(im,re); % 计算共振峰频率

bw=-2*const*log(abs(rts(i))); % 计算带宽

if formn150 bw 700 formnfs/2 % 满足条件方能成共振峰和带宽

yf(k)=formn;

bandw(k)=bw;

k=k+1;

end

end

[y, ind]=sort(yf); % 排序

bw=bandw(ind);

F = [NaN NaN NaN]; % 初始化

F(1:min(3,length(y))) = y(1:min(3,length(y))); % 输出最多三个

F = F(:); % 按列输出

fmt(:,m)=F/(fs/2); % 归一化频率

end;

end;

from 《matlab在语音信号分析与合成中的应用》

TTS是什么意思呢?

TTS是指一项语音合成技术。

语音合成是将人类语音用人工的方式所产生。若是将电脑系统用在语音合成上,则称为语音合成器,而语音合成器可以用软/硬件所实现。

文字转语音系统则是将一般语言的文字转换为语音,其他的系统可以描绘语言符号的表示方式,就像音标转换至语音一样。

扩展资料:

发展历史

1、17世纪法国人研发机械式的说话装置,直到19世纪,贝尔实验室对于电子语音合成技术的研究,才开启近代语音合成技术的发展。

2、贝尔实验室在1939年制作出第一个电子语音合成器VODER,是一种利用共振峰原理所制作的合成器。

3、1960年,瑞典语言学家G. Fant则提出利用线性预测编码技术(LPC)来作为语音合成分析技术,并推动了日后的发展。

4、1980年代Moulines E和Charpentier F提出新的语音合成算法PSOLA,此技术可以合成比较自然的语音。

参考资料来源:百度百科-TTS

共振峰提取的代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于提取共振峰的常用方法、共振峰提取的代码的信息别忘了在本站进行查找喔。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/26198.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载