vb.net汉字语音 vb文字转语音

vb 编个小程序 怎样使在text1和text2输入阿拉伯数字时自动人声报号,我有数字0--9的 .wav文件给你个TTS有关的东西,就是文字转换语音的 , 不知道适合你不,不用wav文件vb.net汉字语音了 。
____________________________________________________________________
在VB中使用文字朗读引擎(TTS)技术
现今市面上流行的一些英语学习软件,在广告词上经常说自己使用了国际顶尖的全程语音TTS技术,能进行整段英文的流利朗读,并能自由调节朗读的速度与频率等 。那么,这个神奇的TTS究竟是什么东西呢?
其实,TTS是微软出品的一套文字朗读引擎(Text-To-SpeechEngine),这些英语软件就是调用它来进行英文朗读的 。vb.net汉字语音我们在英语学习软件的编程开发中也可使用TTS技术 , 下面笔者将利用VisualBasic5.0来揭开TTS神秘的面纱 。
一、安装TTS引擎
TTS引擎所需的MicrosoftText-to-SpeechEngine与MicrosoftSpeechAPI软件都可到微软的站点去下载,也可以在“金山词霸2000”或“金山词霸.net”的安装光盘上找到(文件名为MSTTS.EXE与SPCHAPI.EXE) 。安装了TTS引擎后,在Windows所在目录下会生成一个SPEECH目录,其中有一个Vtxtauto.tlb文件,在编程时vb.net汉字语音我们需要调用它 。
二、在VB中引入Vtxtauto.tlb文件
进入VB5.0,执行选单命令“文件/新建工程/标准EXE”并确定,然后执行选单“工程”中的“引用”,单击“浏览”按钮到Windows目录下的SPEECH子目录 , 打开Vtxtauto.tlb文件,将“VoiceText1.0TypeLibrary”添加到引用列表中,选中它并单击确定 。将库Vtxtauto引入VB后,我们可以通过选单“视图”中的“对象浏览器”来了解它所封装的类,以及各类成员函数的属性的意义、使用格式等信息 。一些主要的方法与属性意义,笔者在下面的源程序中将给出注释 , 在这里就不详细列出,请参见附图1 。
三、设置控件及属性
在FORM1上添加三个Label控件、一个TextBox控件、一个HScrollBar控件和六个CommandButton控件 。窗体及各控件的主要属性设置如下:
FORM1:Caption=“英文朗读”
LABEL1:Caption=“请输入英文文档”
LABEL2:Caption=“朗读速度”
LABEL3:Caption=“”
(LABEL3标签用来显示朗读速度值)
TEXT1:Text=“Pleaseinputenglishtext”;ToolTiptext=“请输入或粘贴英文文档”;MultiLine=True;ScrollBars=3-Both
HSCROLL1:名称=SpeedChange;Min=90;Max=300(Min与Max属性值分别用来限定可调节的语速的最小与最大值)
COMMAND1:名称=read;Caption=“朗读”
COMMAND2:名称=pause;Caption=“暂停”
COMMAND3:名称=stop;Caption=“停止”
COMMAND4:名称=prev;Caption=“上一句”
COMMAND5:名称=next;Caption=“下一句”
COMMAND6:名称=quit;Caption=“退出”
四、编写代码
下面我们就可以一步步地编写代码,具体代码如下:
'在窗体装载时调用Register方法注册,括号内的两个参数是字符串
PrivateSubForm_Load()
CallVTxtAuto.VTxtAuto.Register(Space(8),Space(8))
'因为语速的默认值为170 , 故水平滚动条的初值也设为170
SpeedChange.Value=https://www.04ip.com/post/170
EndSub
'设置朗读速度调节代码,当水平滚动条的值Value发生变化时将其赋给控制语速的Speed属性
PrivateSubSpeedChange_Change()
【vb.net汉字语音 vb文字转语音】VTxtAuto.VTxtAuto.Speed=SpeedChange.Value
Label3.Caption=SpeedChange.Value
EndSub
'设置“朗读”按钮代码
PrivateSubread_Click()
'如果朗读出错 , 则转到出错处理标记模块ErrorHandler
OnErrorGoToErrorHandler
'调用方法Speak进行朗读,第一个参数是要朗读的文本,第二个参数是设置朗读风格
CallVTxtAuto.VTxtAuto.speak(Trim(Text1.Text),vtxtsp_VERYHIGHvtxtst_READING)
ExitSub
ErrorHandler:
MsgBox"只能朗读英文文档 , 不能朗读汉字字符!",,"出错信息"
EndSub
'设置“暂停”按钮代码
PrivateSubpause_Click()
IfVTxtAuto.VTxtAuto.IsSpeakingThen
'如果属性IsSpeaking为真,则表示正在朗读,调用AudioPause方法暂停朗读
CallVTxtAuto.VTxtAuto.AudioPause
pause.Caption="恢复"
Else
'如果已经处于暂停状态则调用AudioResume方法恢复朗读
CallVTxtAuto.VTxtAuto.AudioResume
pause.Caption="暂停"
EndIf
EndSub
'设置“停止”按钮代码 , 调用StopSpeaking方法停止当前朗读
PrivateSubstop_Click()
CallVTxtAuto.VTxtAuto.StopSpeaking
EndSub
'设置“上一句”按钮代码 , 调用AudioRewind方法往后跳过一句
PrivateSubprev_Click()
CallVTxtAuto.VTxtAuto.AudioRewind
EndSub
'设置“下一句”按钮代码,调用AudioFastForward方法向前跳过一句
PrivateSubnext_Click()
CallVTxtAuto.VTxtAuto.AudioFastForward
EndSub
'设置“退出”按钮代码
PrivateSubquit_Click()
UnloadMe
EndSub
本程序在中文Windows95/98、VB5.0环境下运行通过 。运行时在文本编辑框中输入或粘贴英文文档,然后单击“朗读”按钮就可播放读音,运行界面如图2 。
五、程序改进思路
本文对在VB编程中使用TTS技术只是起个抛砖引玉的作用,熟悉VB编程的电脑爱好者来可以对本程序作一些改进 , 例如增加对声卡和TTS引擎是否安装的检测、增加从文本文件或数据库中读取文档的功能、增加让用户选择朗读的优先级和发声音量调节等功能 。这些功能实现起来较为复杂,感兴趣的读者可进行深入研究 。
VB.NET中怎么实现 汉字转换拼音呢建立一个表,每个拼音都跟多个汉字对应 。可以通过汉字,找出对应的一个拼音,也可以通过拼音,找出一堆汉字 。
vb.net怎么做中文语音识别程序这就要调用API函数了
给你代码吧
记得给点分啊
Private
Const
KeysM
=
H8000
Private
Declare
Function
GetAsyncKeyState
Lib
"user32"
(ByVal
vKey
As
Long)
As
Integer
Private
Sub
TextBox1_KeyDown(ByVal
sender
As
Object,
ByVal
e
As
System.Windows.Forms.KeyEventArgs)
Handles
TextBox1.KeyDown
Me.Text
=
e.KeyValue
If
e.KeyValue
=
Keys.ShiftKey
And
GetAsyncKeyState(160)
And
KeysM
Then
MsgBox("你按的是左SHIFT")
ElseIf
e.KeyValue
=
Keys.ShiftKey
And
GetAsyncKeyState(161)
And
KeysM
Then
MsgBox("你按的是右SHIFT")
End
If
End
Sub
如何用vb.net将汉字转换成拼音阿public string hz2py(string hz)//获得汉字vb.net汉字语音的区位码
{
byte[] sarr = System.Text.Encoding.Default.GetBytes(hz);
int len = sarr.Length;
if (len1)
{
byte[] array = new byte[2];
array = System.Text.Encoding.Default.GetBytes(hz);
int i1 = (short)(array[0] - '\0');
int i2 = (short)(array[1] - '\0');
//unicode解码方式下vb.net汉字语音的汉字码
//array = System.Text.Encoding.Unicode.GetBytes(hz);
//int i1 = (short)(array[0] - '\0');
//int i2 = (short)(array[1] - '\0');
//int t1 = Convert.ToInt32(i1,16);
//int t2 = Convert.ToInt32(i2,16);
int tmp=i1*256 i2;
string getpychar="*";//找不到拼音码vb.net汉字语音的用*补位
if(tmp=45217tmp=45252){getpychar= "A";}
else if(tmp=45253tmp=45760){getpychar= "B";}
else if(tmp=47761tmp=46317){getpychar= "C";}
else if(tmp=46318tmp=46825){getpychar= "D";}
else if(tmp=46826tmp=47009){getpychar= "E";}
else if(tmp=47010tmp=47296){getpychar= "F";}
else if(tmp=47297tmp=47613){getpychar= "G";}
else if(tmp=47614tmp=48118){getpychar= "H";}
else if(tmp=48119tmp=49061){getpychar= "J";}
else if(tmp=49062tmp=49323){getpychar= "K";}
else if(tmp=49324tmp=49895){getpychar= "L";}
else if(tmp=49896tmp=50370){getpychar= "M";}
else if(tmp=50371tmp=50613){getpychar= "N";}
else if(tmp=50614tmp=50621){getpychar= "O";}
else if(tmp=50622tmp=50905){getpychar= "P";}
else if(tmp=50906tmp=51386){getpychar= "Q";}
else if(tmp=51387tmp=51445){getpychar= "R";}
else if(tmp=51446tmp=52217){getpychar= "S";}
else if(tmp=52218tmp=52697){getpychar= "T";}
else if(tmp=52698tmp=52979){getpychar= "W";}
else if(tmp=52980tmp=53640){getpychar= "X";}
else if(tmp=53689tmp=54480){getpychar= "Y";}
else if(tmp=54481tmp=55289){getpychar= "Z";}
return getpychar;
}
else
{
return hz;
}
}
public string transpy(string strhz)//把汉字字符串转换成拼音码
{
string strtemp="";
int strlen=strhz.Length;
for (int i=0;i=strlen-1;i)
{
strtemp =hz2py(strhz.Substring(i,1));
}
return strtemp;
}
create table tabpy(id int identity,b_begin varbinary(2),b_end varbinary(2),word varchar(2))
insert tabpy select 0xB0A1, 0xB0C4,'A'
union all select 0xB0C5, 0xB2C0,'B'
union all select 0xB2C1, 0xB4ED,'C'
union all select 0xB4EE, 0xB6E9,'D'
union all select 0xB6EA, 0xB7A1,'E'
union all select 0xB7A2, 0xB8C0,'F'
union all select 0xB8C1, 0xB9FD,'G'
union all select 0xB9FE, 0xBBF6,'H'
union all select 0xBBF7, 0xBFA5,'J'
union all select 0xBFA6, 0xC0AB,'K'
union all select 0xC0AC, 0xC2E7,'L'
union all select 0xC2E8, 0xC4C2,'M'
union all select 0xC4C3, 0xC5B5,'N'
union all select 0xC5B6, 0xC5BD,'O'
union all select 0xC5BE, 0xC6D9,'P'
union all select 0xC6DA, 0xC8BA,'Q'
union all select 0xC8BB, 0xC8F5,'R'
union all select 0xC8F6, 0xCBF9,'S'
union all select 0xCBFA, 0xCDD9,'T'
union all select 0xCDDA, 0xCEF3,'W'
union all select 0xCEF4, 0xD1B8,'X'
union all select 0xD1B9, 0xD4D0,'Y'
union all select 0xD4D1, 0xD7F9,'Z'
函数vb.net汉字语音:
create function getfirstpy(@a varchar(200))
returns varchar(100)
as
begin
declare @i int,@j int,@result varchar(100)
set @result=''
set @i=len(@a)
set @j=1
while @j=@i
begin
select @result=@result word from tabpy where cast(substring(@a,@j,1) as varbinary(2)) between b_begin and b_end
set @j=@j 1
end
return @result
end
vb.net文字转语音Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim s As Object
s = CreateObject("sapi.spvoice")
s.speak("speak")
End Sub
VB.net如何使用Microsoft Speech SDK5.1MS Speech 是一个合成语音软件,可用来形成语音(例如朗读"Hi I am Mike"),Speech SDK是用来将Speech的功能使用于自己的程序的辅助开发工具 。
关于vb.net汉字语音和vb文字转语音的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读