代码的文本到语音部分(VB.NET)在Windows7上运行良好,但在Windows10上运行不好
在两台Windows7机器上,图片和文本首先出现,然后出现TTS。在两台win10机器上,语音先发生,然后出现图片和文本 我尝试添加一个try-catch-and-finally语句并设置延迟,但问题仍然存在 我能做些什么来解决这个问题吗 布莱克伍德最新消息代码的文本到语音部分(VB.NET)在Windows7上运行良好,但在Windows10上运行不好,vb.net,Vb.net,在两台Windows7机器上,图片和文本首先出现,然后出现TTS。在两台win10机器上,语音先发生,然后出现图片和文本 我尝试添加一个try-catch-and-finally语句并设置延迟,但问题仍然存在 我能做些什么来解决这个问题吗 布莱克伍德最新消息 Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim SAPI As Obj
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim SAPI As Object
Select Case TextBox1.Text
Case "1"
PictureBox1.Image = My.Resources.picture1
RichTextBox1.Text = "Information here."
SAPI = CreateObject("SAPI.spvoice")
SAPI.speak(RichTextBox1.Text)
End Select
End Sub
End Class
可能在调用SAPI=CreateObject
之前尝试在那里插入一个。虽然它不是解决方案,但它是最容易实现的。这将导致窗口在继续之前得到更新(已处理)
如果可行,那就采用真正的解决方案:或(只要可能)播放TTS。我建议您编辑问题,以显示代码,并尝试延迟声音。Windows 10彻底修改了语音api。因为科尔塔纳。@JoelCoehoorn我认为这与任何大修无关;只是在TTS执行之前屏幕还没有更新。我建议在单独的(背景)线程上播放。谢谢@RobIII!添加Application.DoEvent已经修复了win10用户的问题,因此我将研究您提到的异步/等待。
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim SAPI As Object
Select Case TextBox1.Text
Case "1"
PictureBox1.Image = My.Resources.picture1
RichTextBox1.Text = "Information here."
System.Threading.Thread.Sleep(100)
SAPI = CreateObject("SAPI.spvoice")
SAPI.speak(RichTextBox1.Text)
End Select
End Sub
End Class