首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以SpeechSynthesizer音频到文本为其口语

以SpeechSynthesizer音频到文本为其口语
EN

Stack Overflow用户
提问于 2014-02-24 18:21:02
回答 2查看 522关注 0票数 4

我目前正在做一个项目,我想让SpeechSynthesizer说一段文字。我还想要一个文本块来显示他们说的话。这样,如果你不理解语音合成器,你就可以继续阅读。

所以基本上问题是,我找不到一种有效的方法,把每一个字母都附加到文本框中的文本中,就在语音合成器发出的时候。所以看起来,语音合成器和他所说的一样,都在打字。

示例

如果我这么做的话:

代码语言:javascript
复制
SpeechSynthesizer x = new SpeechSynthesizer();
x.SpeakAsync("Hello there");

我希望文本框文本在x (SpeechSynthesizer )所说的单词中一起写。就像这样:http://youtu.be/hx6JL7PsLrg?t=1m56s

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-25 01:26:19

正如Eric提到的,您必须使用SpeechSynthesizer.SpeakProgress事件:

例如:

代码语言:javascript
复制
var ss = new SpeechSynthesizer();
ss.SpeakProgress += (sender, args) => txtBox.Text += args.Text;
ss.Speak("Hello this is " + true);
票数 0
EN

Stack Overflow用户

发布于 2014-02-27 17:52:45

这有点麻烦(不能保证逐个字母地进行),但是您可以使用PhonemeReached事件作为一个提示来显示下一个字母(并在单词中断处停止),然后使用SpeakProgress事件生成单词中的其余字母。当然,如果使用SSML,则需要跳过标记。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21995820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档