如果需要,可以找人帮你做一个,用viavoice和音调变声软件的部分代码能够实现,但是识别率比较低,用者需要有标准的发音和完美的声乐知识,不能有歌词,就是完全用单声来表达节拍和旋律。
没有这种软件,通常都是借用MIDI为平台,需要自己写。
MIDI(Musical Instrument Digital Interface)乐器数字接口 ,是20 世纪80 年代初为解决电声乐器之间的通信问题而提出的。MIDI是编曲界最广泛的音乐标准格式,可称为“计算机能理解的乐谱”。
它用音符的数字控制信号来记录音乐。一首完整的MIDI音乐只有几十KB大,而能包含数十条音乐轨道。几乎所有的现代音乐都是用MIDI加上音色库来制作合成的。
相关原理
MIDI仅仅是一个通信标准,它是由电子乐器制造商们建立起来的,用以确定电脑音乐程序、合成器和其他电子音响的设备互相交换信息与控制信号的方法,用于连接各种MIDI设备所用的电缆为5芯电缆,通常人们也把它称为MIDI电缆。
MIDI系统实际就是一个作曲、配器、电子模拟的演奏系统。从一个MIDI设备转送到另一个MIDI设备上去的数据就是MIDI信息。MIDI数据不是数字的音频波形,而是音乐代码或称电子乐谱。
用定时器T0的中断实现"渴望"主题曲的播放
#includereg51.h //包含51单片机寄存器定义的头文件
sbit sound=P3^7; //将sound位定义为P3.7
unsigned int C; //储存定时器的定时常数
//以下是C调低音的音频宏定义
#define l_dao 262 //将“l_dao”宏定义为低音“1”的频率262Hz
#define l_re 286 //将“l_re”宏定义为低音“2”的频率286Hz
#define l_mi 311 //将“l_mi”宏定义为低音“3”的频率311Hz
#define l_fa 349 //将“l_fa”宏定义为低音“4”的频率349Hz
#define l_sao 392 //将“l_sao”宏定义为低音“5”的频率392Hz
#define l_la 440 //将“l_a”宏定义为低音“6”的频率440Hz
#define l_xi 494 //将“l_xi”宏定义为低音“7”的频率494Hz
//以下是C调中音的音频宏定义
#define dao 523 //将“dao”宏定义为中音“1”的频率523Hz
#define re 587 //将“re”宏定义为中音“2”的频率587Hz
#define mi 659 //将“mi”宏定义为中音“3”的频率659Hz
#define fa 698 //将“fa”宏定义为中音“4”的频率698Hz
#define sao 784 //将“sao”宏定义为中音“5”的频率784Hz
#define la 880 //将“la”宏定义为中音“6”的频率880Hz
#define xi 987 //将“xi”宏定义为中音“7”的频率523H
//以下是C调高音的音频宏定义
#define h_dao 1046 //将“h_dao”宏定义为高音“1”的频率1046Hz
#define h_re 1174 //将“h_re”宏定义为高音“2”的频率1174Hz
#define h_mi 1318 //将“h_mi”宏定义为高音“3”的频率1318Hz
#define h_fa 1396 //将“h_fa”宏定义为高音“4”的频率1396Hz
#define h_sao 1567 //将“h_sao”宏定义为高音“5”的频率1567Hz
#define h_la 1760 //将“h_la”宏定义为高音“6”的频率1760Hz
#define h_xi 1975 //将“h_xi”宏定义为高音“7”的频率1975Hz
/*******************************************
函数功能:1个延时单位,延时200ms
******************************************/
void delay()
{
unsigned char i,j;
for(i=0;i250;i++)
for(j=0;j250;j++)
;
}
/*******************************************
函数功能:主函数
******************************************/
void main(void)
{
unsigned char i,j;
//以下是《渴望》片头曲的一段简谱
unsigned int code f[]={re,mi,re,dao,l_la,dao,l_la, //每行对应一小节音符
l_sao,l_mi,l_sao,l_la,dao,
l_la,dao,sao,la,mi,sao,
re,
mi,re,mi,sao,mi,
l_sao,l_mi,l_sao,l_la,dao,
l_la,l_la,dao,l_la,l_sao,l_re,l_mi,
l_sao,
re,re,sao,la,sao,
fa,mi,sao,mi,
la,sao,mi,re,mi,l_la,dao,
re,
mi,re,mi,sao,mi,
l_sao,l_mi,l_sao,l_la,dao,
l_la,dao,re,l_la,dao,re,mi,
re,
l_la,dao,re,l_la,dao,re,mi,
re,
0xff}; //以0xff作为音符的结束标志
//以下是简谱中每个音符的节拍
//"4"对应4个延时单位,"2"对应2个延时单位,"1"对应1个延时单位
unsigned char code JP[ ]={4,1,1,4,1,1,2,
2,2,2,2,8,
4,2,3,1,2,2,
10,
4,2,2,4,4,
2,2,2,2,4,
2,2,2,2,2,2,2,
10,
4,4,4,2,2,
4,2,4,4,
4,2,2,2,2,2,2,
10,
4,2,2,4,4,
2,2,2,2,6,
4,2,2,4,1,1,4,
10,
4,2,2,4,1,1,4,
10
};
EA=1; //开总中断
ET0=1; //定时器T0中断允许
TMOD=0x00; // 使用定时器T0的模式1(13位计数器)
while(1) //无限循环
{
i=0; //从第1个音符f[0]开始播放
while(f[i]!=0xff) //只要没有读到结束标志就继续播放
{
C=460830/f[i];
TH0=(8192-C)/32; //可证明这是13位计数器TH0高8位的赋初值方法
TL0=(8192-C)%32; //可证明这是13位计数器TL0低5位的赋初值方法
TR0=1; //启动定时器T0
for(j=0;jJP[i];j++) //控制节拍数
delay(); //延时1个节拍单位
TR0=0; //关闭定时器T0
i++; //播放下一个音符
}
}
}
/***********************************************************
函数功能:定时器T0的中断服务子程序,使P3.7引脚输出音频的方波
************************************************************/
void Time0(void ) interrupt 1 using 1
{
sound=!sound; //将P3.7引脚输出电平取反,形成方波
TH0=(8192-C)/32; //可证明这是13位计数器TH0高8位的赋初值方法
TL0=(8192-C)%32; //可证明这是13位计数器TL0低5位的赋初值方法
}
转换流程点开聊天框右边第二图标上方的箭头,会有谱曲选项,然后点开谱曲——新建乐谱,就打开了乐谱编辑器,复制音符进音轨就行了
目前还没有,不过有种编辑电脑音乐的软件。
1、提到音乐制作软件,不能不提cakewalk,在2002年以前,
cakewalk就成了电脑音乐制作软件的代名词。
2、cakewalk原来的版本只支持midi编辑,后来,增加了
音频处理功能,名字也就变成了sona
,国内人俗称声纳。目前最高版本是
sona
4.0。
3、几乎包括了所有音乐人所需要的电脑音乐制作的功能。既懂
英文,又懂五线谱的专业音乐人士,sona
几乎成为了你的必然选择。
4、只有五线谱版,没有简谱版。只适合整天呆在录音棚里的专家使用。
另外,因为目前还只有英文版。
怎么把文字转换成语音
操作零难度。打开文字转换语音软件,如下图所示,把需要转换的文字复制粘贴或手打输入到软件上部的文本框中。
选择相关合成设置选项。比如引擎类型(个性化语音引擎比较强大些),发音人(男声、女声、童声、方言等都有),语速,音量等。你爱怎么选就怎么选。
再勾选上右下角的“保存语音文件”,就可以开始点击“开始合成”按钮了。这里的合成就是把文字转变成语音的意思啦。合成过程中,在下方状态栏有提示“正在合成语音,请稍候...”,合成完毕后,没有什么提示的。
那合成的音频文件在哪儿呢?呵呵,程序软件所在目录中,如下图,找到“合成语音.wav”的文件就是了。还有,还多出了一个类似“fa9ffb19ed0f3d178487bfb2658e7125”的文件夹,这是临时生成的文件,可以删除的。
着制全正统许影须深标包调严