vb.net SpeechLib 播报语音封装类
vb.net 使用SpeechLib 播报汉字语音,如果第一句没说完就让它说第二句,可以中止前一句,也可以等前一句说完再说第二句。调用Skip方法即可。
先引用microsoft speech lib object library。
封装实现:
Imports SpeechLib
Imports System.ThreadingPublic Class SpeakerPrivate ReadOnly Speaker As New SpVoicePublic Property Volume() As Int16 = 100Public Property Rate() As Int16 = 0Public Sub Speak(Content As String, enginee As String)Dim t As Threadt = New Thread(AddressOf Speak)t.IsBackground = Truet.Start(New String(1) {Content, enginee})End SubPublic Sub Speak(param() As String)Dim Voices As ISpeechObjectTokens = Speaker.GetVoices()Dim cnVoice As Integer = -1If (Voices.Count = 0) ThenDebug.Print("没有安装语音引擎")Exit SubEnd IfFor i = 0 To Voices.Count - 1If Right(Voices.Item(i).GetDescription, Len(param(1))) = param(1) ThencnVoice = iExit ForEnd IfNextIf cnVoice < 0 Or cnVoice > Voices.Count - 1 ThenDebug.Print("指定的语音引擎不存在")Exit SubEnd IfSpeaker.Voice = Voices(cnVoice)Speaker.Rate = RateSpeaker.Volume = VolumeSpeaker.Skip("Sentence", 1) '终止前一句Speaker.Speak(param(0), SpeechVoiceSpeakFlags.SVSFlagsAsync) '异步参数,防止卡住End Sub
End Class
如何调用:
窗体准备两个按钮,两个文本框。一个combobox
Imports SpeechLibPublic Class Form1Dim speaker As New SpeakerPrivate Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Clickspeaker.Rate = -10speaker.Volume = 100speaker.Speak(TextBox1.Text, ComboxVoice.Text)End SubPrivate Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.LoadDim Speaker As New SpVoiceDim Voices As ISpeechObjectTokens = Speaker.GetVoices()For Each x As ISpeechObjectToken In VoicesComboxVoice.Items.Add(x.GetDescription)NextIf ComboxVoice.Items.Count > 0 ThenComboxVoice.SelectedIndex = 0End IfEnd SubPrivate Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Clickspeaker.Rate = 10speaker.Volume = 100speaker.Speak(TextBox2.Text, ComboxVoice.Text)End Sub
End Class
点一个按钮,然后接着点第二个按钮,测试一下能不能中断第一句话接着说第二句话。如果不想中断,把类里面的_Speaker.Skip("Sentence", 1) 这句代码删除即可。
vb.net SpeechLib 播报语音封装类相关推荐
- 0-100数字播报语音包
0-100数字播报语音包 0-100号的叫号语音包,有mp3和wav两个版本,下载连接链接:https://download.csdn.net/download/weixin_41502276/182 ...
- vue js 语音播报 语音读文字 window.speechSynthesis new SpeechSynthesisUtterance (补充无声音 问题解决办法)
存在问题1 : 在google chrome 89版本之后 默认使用的线上服务来合成语音 所以在国内可能会没有声音 解决办法 : 通过getVoices 获取 localService为true 的字 ...
- 语音播报——用setTimeout实现轮询调用接口并播报语音功能
应用场景:对于订单管理系统,如果有订单来了,希望能够及时提醒的话,语音播报是一个很好的方式 功能: 勾选语音播报,则会间隔15s去调用接口,如果接口返回数据则进行音频的播报 如果不勾选语音播报或者取消 ...
- vb.net 文本转语音
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Lo ...
- 如何在Electron中打造实现语音合成播放,让Windows自带TTS助你实现离线流畅语音播报语音朗读功能
使用Electron和Windows自带TTS进行语音合成播放 const path = require('path'); const { spawn } = require('child_proce ...
- uniapp实现微信小程序websocket+背景音频语音播报
业务需求:根据后台返回消息播报语音,要求后台运行可继续播报 实现步骤: 建立socket连接监听消息,并建立心跳检测机制,防止socket意外断连 将接收到的文字信息转化为音频文件 使用uni.get ...
- TTS语音播报模块UNV6288的使用方法
TTS即text to sound, 输入字符它可以帮你转化为语音输出. UNV6288可以实现中文.英文.数字的语音合成.用户也可以定义语音大小速度等参数. 这个模块的控制方式很简单,只要通过 TT ...
- 使用谷歌浏览器的speechSynthesis的API,实现语音播报功能
今天给大家分享一个,使用谷歌自带的API实现语音播报的功能,可以在项目预警上使用! 实现效果: 代码如下: <!DOCTYPE html> <html><head> ...
- python 天气预报制作_Python 制作语音天气预报播报程序
之前在参加Python爬虫小分队的学习时,爬取过中国天气网这个网站,可以通过爬虫获取当地的天气信息,今天和大家分享一个将爬虫得到的天气文本信息通过百度语音合成接口制作成语音文件,并进行语音播报. 百度 ...
- 来电语音播报软件下载apk_来电播报下载-来电播报app安卓版下载v1.2.0-游侠软件下载...
来电播报是一款能够播报来电人姓名.号码和短信内容的应用软件,使用来电播报,用户在开车或是不方便查看信息的时候,也能知道是谁来电,有需要的朋友赶快下载吧! 来电播报app介绍 来电播报APP是通过获取来 ...
最新文章
- Target runtime Apache Tomcat v7.0 is not defined.
- 标志位和中断位的区别:USART_ClearFlag和USART_ClearITPendingBit
- 2011软件设计大赛
- win8系统的计算机共享在哪里设置方法,win10系统设置与win8系统局域网文件共享的方案...
- 地球化学图解系统GCDPlot 0.33
- Leetcode--925. 长按键入
- 25k英里高速建48个充电走廊,美国电动汽车产业迎来春天
- macOS清理内存空间的其他other
- 统计一行文本的单词个数_NLP中的文本表示方法
- arduino接收hmi屏幕_汽车HMI设计中交互设计的发展趋势
- 嵌入式Linux驱动学习之路(二)u-boot体验
- Dynamics CRM2013 业务规则的新建、激活与删除
- 单文件浏览器_浏览器工作原理
- hough变换是如何检测出直线和圆的?
- html 如何播放 dat音频,如何打开dat音频文件,教您如何打开dat音频文件
- Windows10 查看电脑关机时间(提交忘记打卡申请必备)
- 新东方雅思词汇(List 41 ~ List 45)
- 人工智能技术在电气自动化中的应用,主要有哪些?
- 域控服务器里没有internet时间,server2008r2域控时间设置internet时间同步的方法
- web页面性能优化及SEO优化