文字转换为语音VB.NEt实现
2017-01-09 16:20
597 查看
Imports System.Speech.Synthesis Imports SpeechLib Public Class Form1 Public Sub New() ' 此调用是 Windows 窗体设计器所必需的。 InitializeComponent() ' 在 InitializeComponent() 调用之后添加任何初始化。 End Sub '分别用两种方法实现 Dim ss As SpeechSynthesizer '定义一个语音引擎访问全局变量 Dim voice As SpVoice = New SpVoice '调用第三方工具库SpeechLib Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load ss = New SpeechSynthesizer() '实例化 Dim voicestring As String = "" '定义一个字符串 For Each iv As InstalledVoice In ss.GetInstalledVoices() '遍历已安装的语音引擎 ComboxVoice.Items.Add(iv.VoiceInfo.Name) '将其名字添加到组合框 Next ComboxVoice.SelectedIndex = 0 '默认显示第一个 End Sub Private Sub ButtonRead_Click(sender As Object, e As EventArgs) Handles ButtonRead.Click voice.Voice = voice.GetVoices(String.Empty, String.Empty).Item(0) '设置中文语音 'voice.Voice = voice.GetVoices(String.Empty, String.Empty).Item(1) '设置英文语音,只读英文 ' voice.Rate = trackBarSpeed.Value '设置语速 'voice.Volume = trackBarVolumn.Value '设置音量 ss.SelectVoice(ComboxVoice.SelectedItem) '选择语音引擎 ss.Rate = trackBarSpeed.Value '设置语速 ss.Volume = trackBarVolumn.Value '设置音量 'voice.Speak(txtMsg.Text, SpeechVoiceSpeakFlags.SVSFDefault) '同步朗读 ' voice.Speak(txtMsg.Text, SpeechVoiceSpeakFlags.SVSFlagsAsync) '异步朗读 ss.SpeakAsync(txtMsg.Text) '异步发出语音 End Sub Private Sub ButtonPause_Click(sender As Object, e As EventArgs) Handles ButtonPause.Click ss.Pause() '暂停播放 'voice.Pause() End Sub Private Sub ButtonContinue_Click(sender As Object, e As EventArgs) Handles ButtonContinue.Click ss.Resume() '继续播放 'voice.Resume() End Sub Private Sub ButtonRecord_Click(sender As Object, e As EventArgs) Handles ButtonRecord.Click Dim ss As SpeechSynthesizer = New SpeechSynthesizer() '定义一个局部变量 ss.Rate = trackBarSpeed.Value ss.Volume = trackBarVolumn.Value Dim sfd As SaveFileDialog = New SaveFileDialog() '定义一个文件保存提示框,并且实例化 sfd.Filter = "Wave Files|*.wav" '设置文件类型为语音文件(.wav) If sfd.ShowDialog = DialogResult.OK Then '如果选择了文件名 ss.SetOutputToWaveFile(sfd.FileName) '输出音频文件 ss.Speak(txtMsg.Text) ss.SetOutputToDefaultAudioDevice() MessageBox.Show("完成录音~~", "提示") End If End Sub Private Sub ButtonClose_Click(sender As Object, e As EventArgs) Handles ButtonClose.Click Application.Exit() '应用退出 End Sub End Class
相关文章推荐
- 将天文数字转换成中文大写(.Net/C#/VB/T-SQL/Java 实现)
- 实现C#和VB.net之间的相互转换
- asp.net(vb)实现金额转换成大写的函数
- 转 .Net/C#/VB/T-SQL/Java/Script 实现: 将天文数字转换成中文大写 (2000 年前的思路,打劫的,一点儿技术含量都没有)
- vb.net 在windows7下实现毛玻璃效果+发光文字
- android自学之TextToSpeech实现文字向语音的转换
- vb.net 在windows窗体上实现文字滚动
- 实现C#和VB.net之间的相互转换(马辉)
- 使用jacob+SAPI5.1实现将将文字转换为语音播放并可存储到.wav文件
- VB.NET实现DirectPlay(6)VOICE语音群聊
- 实现C#和VB.net之间的相互转换
- .Net/C#/VB/T-SQL/Java/Script 实现: 将天文数字转换成中文大写 (2000 年前的思路,打劫的,一点儿技术含量都没有)
- .Net/C#/VB/T-SQL/Java 实现: 将天文数字转换成中文大写 (2000 年前的思路,打劫的,一点儿技术含量都没有)
- 如何实现经度纬度到平面坐标的相互转换(VB.net)
- android 融云 + 科大讯飞 实现仿微信语音消息转换为文字
- 实现C#和VB.net之间的相互转换
- [VB.NET]急!!!! 实现矩阵转置,即将矩阵的行,列互换,一个3行2列的矩阵将转换为2行3列.
- VB.Net实现文字的多种特效
- .Net/C#/VB/T-SQL/Java 实现: 将天文数字转换成中文大写 (2000 年前的思路,打劫的,一点儿技术含量都没有)