vbnettts的简单介绍
vb.net如何调用窗体之间的控件
Public Class ks
创新互联专注于太平企业网站建设,成都响应式网站建设公司,商城系统网站开发。太平网站建设公司,为太平等地区提供建站服务。全流程按需网站策划,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
Inherits System.Windows.Forms.Form
#Region " Windows 窗体设计器生成的代码 "
Public Sub New()
MyBase.New()
'该调用是 Windows 窗体设计器所必需的。
InitializeComponent()
'在 InitializeComponent() 调用之后添加任何初始化
End Sub
'窗体重写 dispose 以清理组件列表。
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改此过程。
'不要使用代码编辑器修改它。
Friend WithEvents tx As System.Windows.Forms.TextBox
Friend WithEvents ty As System.Windows.Forms.TextBox
Friend WithEvents tz As System.Windows.Forms.TextBox
Friend WithEvents ok As System.Windows.Forms.Button
Friend WithEvents l1 As System.Windows.Forms.Label
Friend WithEvents l2 As System.Windows.Forms.Label
Friend WithEvents l3 As System.Windows.Forms.Label
System.Diagnostics.DebuggerStepThrough() Private Sub InitializeComponent()
Me.l1 = New System.Windows.Forms.Label
Me.l2 = New System.Windows.Forms.Label
Me.l3 = New System.Windows.Forms.Label
Me.tx = New System.Windows.Forms.TextBox
Me.ty = New System.Windows.Forms.TextBox
Me.tz = New System.Windows.Forms.TextBox
Me.ok = New System.Windows.Forms.Button
Me.SuspendLayout()
'
'l1
'
Me.l1.BackColor = System.Drawing.Color.FromArgb(CType(192, Byte), CType(192, Byte), CType(255, Byte))
Me.l1.Location = New System.Drawing.Point(8, 8)
Me.l1.Name = "l1"
Me.l1.Size = New System.Drawing.Size(200, 16)
Me.l1.TabIndex = 0
'
'l2
'
Me.l2.BackColor = System.Drawing.Color.FromArgb(CType(192, Byte), CType(192, Byte), CType(255, Byte))
Me.l2.Location = New System.Drawing.Point(8, 32)
Me.l2.Name = "l2"
Me.l2.Size = New System.Drawing.Size(200, 16)
Me.l2.TabIndex = 1
'
'l3
'
Me.l3.BackColor = System.Drawing.Color.FromArgb(CType(192, Byte), CType(192, Byte), CType(255, Byte))
Me.l3.Location = New System.Drawing.Point(8, 56)
Me.l3.Name = "l3"
Me.l3.Size = New System.Drawing.Size(200, 16)
Me.l3.TabIndex = 2
'
'tx
'
Me.tx.Location = New System.Drawing.Point(8, 80)
Me.tx.Name = "tx"
Me.tx.Size = New System.Drawing.Size(200, 25)
Me.tx.TabIndex = 3
Me.tx.Text = "请输入x"
'
'ty
'
Me.ty.Location = New System.Drawing.Point(8, 104)
Me.ty.Name = "ty"
Me.ty.Size = New System.Drawing.Size(200, 25)
Me.ty.TabIndex = 4
Me.ty.Text = "请输入y"
'
'tz
'
Me.tz.Location = New System.Drawing.Point(8, 128)
Me.tz.Name = "tz"
Me.tz.Size = New System.Drawing.Size(200, 25)
Me.tz.TabIndex = 5
Me.tz.Text = "请输入z"
'
'ok
'
Me.ok.BackColor = System.Drawing.Color.FromArgb(CType(192, Byte), CType(192, Byte), CType(255, Byte))
Me.ok.Location = New System.Drawing.Point(8, 160)
Me.ok.Name = "ok"
Me.ok.Size = New System.Drawing.Size(200, 64)
Me.ok.TabIndex = 6
Me.ok.Text = "ok"
'
'ks
'
Me.AutoScaleBaseSize = New System.Drawing.Size(8, 18)
Me.BackColor = System.Drawing.Color.FromArgb(CType(128, Byte), CType(128, Byte), CType(255, Byte))
Me.ClientSize = New System.Drawing.Size(216, 232)
Me.Controls.Add(Me.ok)
Me.Controls.Add(Me.tz)
Me.Controls.Add(Me.ty)
Me.Controls.Add(Me.tx)
Me.Controls.Add(Me.l3)
Me.Controls.Add(Me.l2)
Me.Controls.Add(Me.l1)
Me.Name = "ks"
Me.Text = "考试"
Me.ResumeLayout(False)
End Sub
#End Region
Dim x, y, z, a, b, c, d, aa, bb, cc As Single
Dim tts, alls As Single
Private Sub ks_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
x = Int(1 + 30 * Rnd())
y = Int(1 + 20 * Rnd())
z = Int(1 + 25 * Rnd())
a = Int(2 + 4 * Rnd())
b = Int(1 + a * 2 * Rnd())
c = Int(1 + b * 2 * Rnd())
d = Int(1 + c * 3 * Rnd())
aa = x + y + z
bb = a * x + b * y + c * z
cc = b * x + c * y + d * z
l1.Text = "x+y+z=" Str(aa)
l2.Text = Str(a) "x+" Str(b) "y+" Str(c) "z=" Str(bb)
l3.Text = Str(b) "x+" Str(c) "y+" Str(d) "z=" Str(cc)
End Sub
Private Sub ok_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ok.Click
If Val(tx.Text) = x And Val(ty.Text) = y And Val(tz.Text) = z Then
tts = tts + 1
End If
alls = alls + 1
tx.Text = ""
ty.Text = ""
tz.Text = ""
x = Int(1 + (1000 ^ 0.5) * Rnd())
y = Int(1 + (10000 ^ 0.4) * Rnd())
z = Int(1 + (100000 ^ 0.3) * Rnd())
a = Int(2 + 4 * Rnd())
b = Int(1 + a * 2 * Rnd())
c = Int(1 + b * 2 * Rnd())
d = Int(1 + c * 3 * Rnd())
aa = x + y + z
bb = a * x + b * y + c * z
cc = b * x + c * y + d * z
l1.Text = "x+y+z=" Str(aa)
l2.Text = Str(a) "x+" Str(b) "y+" Str(c) "z=" Str(bb)
l3.Text = Str(b) "x+" Str(c) "y+" Str(d) "z=" Str(cc)
End Sub
Private Sub ks_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Click
Dim lv As Single
If Not (alls = 0) Then
lv = Int(tts * 100000 / alls) / 1000
MsgBox(Str(lv) "%", , "正确率")
tx.Visible = False
ty.Visible = False
tz.Visible = False
ok.Visible = False
l1.Visible = False
l2.Visible = False
l3.Visible = False
Else
MsgBox("答题!", , "答题!")
End If
End Sub
End Class
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.1
安装了sdk后应该可以在控件箱单击鼠标右键,然后选择部件,在弹出的列表中应该可以找到microsoft tts engine或之类的东西,选择后就可以吧tts engine作为控件放到窗体上。 调用貌似是用.speak(String)实现的。 由于我是很久以前用的,所以也记得不是很清楚了,你可以找找看。
vb 编个小程序 怎样使在text1和text2输入阿拉伯数字时自动人声报号,我有数字0--9的 .wav文件
给你个TTS有关的东西,就是文字转换语音的,不知道适合你不,不用wav文件了。
____________________________________________________________________
在VB中使用文字朗读引擎(TTS)技术
现今市面上流行的一些英语学习软件,在广告词上经常说自己使用了国际顶尖的全程语音TTS技术,能进行整段英文的流利朗读,并能自由调节朗读的速度与频率等。那么,这个神奇的TTS究竟是什么东西呢?
其实,TTS是微软出品的一套文字朗读引擎(Text-To-Speech Engine),这些英语软件就是调用它来进行英文朗读的。我们在英语学习软件的编程开发中也可使用TTS技术,下面笔者将利用Visual Basic 5.0来揭开TTS神秘的面纱。
一、安装TTS引擎
TTS引擎所需的Microsoft Text-to-Speech Engine与Microsoft Speech API软件都可到微软的站点去下载,也可以在“金山词霸2000”或“金山词霸.net”的安装光盘上找到(文件名为MSTTS.EXE与SPCHAPI.EXE)。安装了TTS引擎后,在Windows所在目录下会生成一个SPEECH目录,其中有一个Vtxtauto.tlb文件,在编程时我们需要调用它。
二、在VB中引入Vtxtauto.tlb文件
进入VB 5.0,执行选单命令“文件/新建工程/标准EXE”并确定,然后执行选单“工程”中的“引用”,单击“浏览”按钮到Windows目录下的SPEECH子目录,打开Vtxtauto.tlb文件,将“VoiceText 1.0 Type Library”添加到引用列表中,选中它并单击确定。将库Vtxtauto引入VB后,我们可以通过选单“视图”中的“对象浏览器”来了解它所封装的类,以及各类成员函数的属性的意义、使用格式等信息。一些主要的方法与属性意义,笔者在下面的源程序中将给出注释,在这里就不详细列出,请参见附图1。
三、设置控件及属性
在FORM1上添加三个Label控件、一个TextBox控件、一个HScrollBar控件和六个CommandButton控件。窗体及各控件的主要属性设置如下:
FORM1:Caption=“英文朗读”
LABEL1:Caption=“请输入英文文档”
LABEL2:Caption=“朗读速度”
LABEL3:Caption=“ ”
(LABEL3标签用来显示朗读速度值)
TEXT1:Text=“Please input english text”;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方法注册,括号内的两个参数是字符串
Private Sub Form_Load()
Call VTxtAuto.VTxtAuto.Register(Space(8), Space(8))
'因为语速的默认值为170,故水平滚动条的初值也设为170
SpeedChange.Value = 170
End Sub
'设置朗读速度调节代码,当水平滚动条的值Value发生变化时将其赋给控制语速的Speed属性
Private Sub SpeedChange_Change()
VTxtAuto.VTxtAuto.Speed=SpeedChange.Value
Label3.Caption = SpeedChange.Value
End Sub
'设置“朗读”按钮代码
Private Sub read_Click()
'如果朗读出错,则转到出错处理标记模块ErrorHandler
On Error GoTo ErrorHandler
'调用方法Speak进行朗读,第一个参数是要朗读的文本,第二个参数是设置朗读风格
Call VTxtAuto.VTxtAuto.speak(Trim(Text1.Text), vtxtsp_VERYHIGH + vtxtst_READING)
Exit Sub
ErrorHandler:
MsgBox "只能朗读英文文档,不能朗读汉字字符!", , "出错信息"
End Sub
'设置“暂停”按钮代码
Private Sub pause_Click()
If VTxtAuto.VTxtAuto.IsSpeaking Then
'如果属性IsSpeaking为真,则表示正在朗读,调用AudioPause方法暂停朗读
Call VTxtAuto.VTxtAuto.AudioPause
pause.Caption = "恢复"
Else
'如果已经处于暂停状态则调用AudioResume方法恢复朗读
Call VTxtAuto.VTxtAuto.AudioResume
pause.Caption = "暂停"
End If
End Sub
'设置“停止”按钮代码,调用StopSpeaking方法停止当前朗读
Private Sub stop_Click()
Call VTxtAuto.VTxtAuto.StopSpeaking
End Sub
'设置“上一句”按钮代码,调用AudioRewind方法往后跳过一句
Private Sub prev_Click()
Call VTxtAuto.VTxtAuto.AudioRewind
End Sub
'设置“下一句”按钮代码,调用AudioFastForward方法向前跳过一句
Private Sub next_Click()
Call VTxtAuto.VTxtAuto.AudioFastForward
End Sub
'设置“退出”按钮代码
Private Sub quit_Click()
Unload Me
End Sub
本程序在中文Windows 95/98、VB 5.0环境下运行通过。运行时在文本编辑框中输入或粘贴英文文档,然后单击“朗读”按钮就可播放读音,运行界面如图2。
五、程序改进思路
本文对在VB编程中使用TTS技术只是起个抛砖引玉的作用,熟悉VB编程的电脑爱好者来可以对本程序作一些改进,例如增加对声卡和TTS引擎是否安装的检测、增加从文本文件或数据库中读取文档的功能、增加让用户选择朗读的优先级和发声音量调节等功能。这些功能实现起来较为复杂,感兴趣的读者可进行深入研究。
想在vb.net的程序中有一个语音提示,该怎么写
首先添加一个系统的语音COM组件的引用microsoft speech object library然后在程序中声明一个语音类dim RC As SpeechLib.SpSharedRecoContext这个类有一些事件,如果你要处理它的一些事件,可以用withevent来声明然后在窗体LOAD事件或你需要的地方先创建一个实例RC = New SpeechLib.SpSharedRecoContext当一个RC被实例化后,系统就会运行语音识别程序.前提是你的系统已经正确安装这个功能.一般默认就已经安装好的.其次提醒一下,WIN7的语音识别比XP的好N倍.从阅读到侦听都好很多.然后就可以在你需要阅读的地方使用RC.Voice.Speak("hello 我", 11)11那里是一些枚举,用来标识系统用前台还是后台或其他方式来阅读文字,简单的来说就是阅读的时候不会卡住你的程序.你可以选其他的枚举来试试作用.以上为阅读部分.如果需要程序听你说话,则需要声明一个侦听类dim RG As SpeechLib.ISpeechRecoGrammar在初始化时将之与上面的RC建立关系,此时则必须要用withevent来声明上面的RC,因为涉及电脑听到你的语音后,会触发一个事件,并将听到的内容传递到该事件.其次,要让系统听到的解析为命令,就必须准备一个XML结构的文件来保存那些固定的命令.如果电脑在XML文件中找不到那些固定命令或同时不属于系统命令,电脑将会将其解释为听写.RG = RC.CreateGrammar '(0)
RG.CmdLoadFromFile("听到.xml", SpeechLib.SpeechLoadOption.SLODynamic)
RG.CmdSetRuleIdState(0, SpeechLib.SpeechRuleState.SGDSActive)然后写一个过程来处理听到的事件Private Sub 听到命令(ByVal StreamNumber As Integer, ByVal StreamPosition As Object, ByVal RecognitionType As SpeechLib.SpeechRecognitionType, ByVal 话语 As SpeechLib.ISpeechRecoResult) Handles RC.Recognition RC.Voice.Speak("我听到了" 话语.PhraseInfo.GetText, 11)End Sub以上为侦听部分.下面列一个XML的例文?xml version="1.0" encoding="gb2312"?
GRAMMAR LANGID="804"
RULE NAME="命令" TOPLEVEL="ACTIVE"
L
P打开播放器
P上我的QQ
P关闭你自己 /L
/RULE
/GRAMMAR要让系统正确地侦听到你说的话,前提你必须运行语音识别程序并让其激活到"正在聆听"状态.并且你必须有一个能正常使用的话筒而且保证话筒已经打开.(废话-_-|||)以上就是用VB.NET语音识别的最基本的一些操作.希望对你有帮助.更深入的内容有兴趣的话可以和我一起研究.
谁会VB中TTS的操作方法
以下是一个TTS语音的示例程序,它可以识别中文跟英文的文本,通过此程序可以帮助编程者快速的熟悉VB下TTS的编程,
也可根据这个示例进一步开发有关英文小精灵之类的软件!!
运行之前必须安装microsoft中文引擎,附录在程序所在的文件夹里面!!
本站提供TTS_forVB免费下载,版权归该下载资源的合法拥有者所有。
网页标题:vbnettts的简单介绍
URL链接:http://azwzsj.com/article/hedghc.html