问题标签 [speech-synthesis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
409 浏览

.net - SpeechSynthezier.PhonemeReached 事件和控制字符

我正在创建一个小的 silverlight 小部件,它可以发音一个单词并在发音时突出显示每个音节。

作为其中的一部分,我使用SpeechSynthesizer.PhonemeReached 事件来确定每个音素的开始和结束时间(作为确定每个音节开始和结束时间的一个步骤)。

奇怪的是,PhonemeReachedEventArgs.Phoneme 属性有时是一个控制字符,至少(但可能不完全是)U+0004 END OF TRANSMISSION,包括不是,嗯,传输结束的地方(例如,开始)。

我找不到任何关于这应该意味着什么的文档,有人知道吗?

编辑:澄清一下,我没有在 Silverlight 中进行语音合成(因为不支持),我在服务器上进行,并在音频的 HTTP 标头中返回音节边界时间和单词的 IPA 转录回复。我可能根本不应该提到silverlight部分,因为它并不真正相关,我只是没有真正考虑解释上下文。哎呀。:)

0 投票
1 回答
6131 浏览

text-to-speech - System.Speech.Synthesis 和 TTSEngine 的西班牙语语音

我已经成功地让 System.Speech.Synthesis 以任意声音 Anna 和 Sam 阅读英文文本。我的下一个任务是本地化我的应用程序,以便正确地向我们的说西班牙语的客户阅读西班牙语文本。

但是,我不认为我在问正确的问题,因为我在文档、论坛、小组或技术文章中找不到任何关于如何做到这一点的明确解释。

第一:我说 SpeechSynthesizer 类或任何其他 Text-To-Speech 对象上没有设置是否正确?换句话说,是否只需要安装正确的声音,以西班牙“口音”阅读?

第二:如何做到这一点?我已经看到我尝试安装的西班牙语库的链接,但我永远无法在我的 Windows XP 语音控制面板或我的应用程序的 GetInstalledVoices() 调用中看到这些新声音。

我正在使用 .Net 3.5 SP 1 和一个 Windows XP SP3,而我的代码正在使用 Visual Studio 2..8。

如果我缺少详细信息,请告诉我。

我将不胜感激任何帮助。五

0 投票
2 回答
10394 浏览

c# - C# 语音识别

我现在正在做一个智能家居控制系统,我有一个小问题。我正在考虑将 Cosmos 用于基本系统,并向其添加所需的命名空间库,但由于通常的 System.Speech.Recognition 命名空间过于依赖 Windows Speech API,我不得不忘记使用它。

所以我的问题是,是否有任何(如果可能的话免费)用于 C# 的语音识别和/或语音语音合成器库,具有以下内容:

  • 支持多国语言
  • 从语音样本中提取文本内容
  • 用可选择的(或用户编写的)语音模式(语音)合成语音

一个通用的、不依赖于 Windows 的库将是最好的,当然,如果它也是免费的。

0 投票
3 回答
4339 浏览

iphone - iOS中的语音输出

是否可以访问用于辅助功能的 iOS 语音合成功能?

0 投票
1 回答
1651 浏览

vb.net - VB 2010 Express:文本到语音

我对如何让 TTS 在 VB 2010 Express 中工作感到非常困惑。我阅读了几个操作指南,每个指南都展示了如何以不同的方式进行 TTS(通过 System.Speech、添加对 Microsoft 语音对象库的引用、使用 SAPI 等)。不幸的是,它们都不是开箱即用的,所以我需要安装额外的软件包并遵循一些程序。

我的问题是:启用 TTS、选择非英语语音并确保拥有可移植的可执行文件(即可安装在 XP 和 Vista 机器上)是最直接的方法?

谢谢!

0 投票
4 回答
128 浏览

php - 爆炸首字母缩略词以确保合成器正确读取它们?

如果我输入语音合成器(在这种情况下是节日,但它适用于所有人)以下文本:

“在美国的USPGA锦标赛上,BBC记者去了MIA”。上面写着“在美国的uspga锦标赛上,BBC记者去了mia”。

换句话说,我猜因为它是一组辅音,所以它正确地读取了“BBC”,但将其他的“单词”变成了“单词”。

我想,最简单的做法是通过一个查找 2 个或更多大写字母的 php 脚本运行它,然后简单地将单词“分解”成空格,例如 USPG A.

我意识到这会导致诸如“我告诉他不要那样做”之类的怪异现象,但在新闻报道中这种情况往往发生得更少。

事情是这样的;我可以“爆炸”一个词 好的,问题是,我是这样的人之一,尽管尝试了几个月,但还是无法理解 REGEX 的某些方面。在这种情况下,它正在寻找:两个或多个大写字母。

我给出上述所有序言的原因是为了以防万一有更好的方法来做到这一点,我还没有找到或通过 - 也许是单词或其他东西的首字母缩略词数据库。

0 投票
2 回答
1802 浏览

.net - 我怎样才能降低我们尖端的文本到语音转换?

回到过去,文本转语音虽然是最先进的,但非常不完善。当您输入一个单词时,它几乎会以您的拼写方式阅读它……单调。很多时候,结果会很有趣。如今,文本转语音技术太聪明了,不能以可以带来笑声的方式搞砸。

作为一个个人项目,我想制作一个可以带回这种旧式文本到语音的应用程序,即使只是作为一个玩具。在 .Net 中,我可以使用COM 对象System.Speech.dllSpeechLib COM 对象。(微软语音对象库)两者似乎都使用了操作系统内置的文本到语音,这又太聪明了。有什么方法可以配置这些来禁用任何使它变得智能的东西?

我尝试了一些不同的“SayAs”选项,我尝试将文化设置为不变(例外!),现在我正在研究 SSML。开始看起来我必须找到旧技术本身,但我什至不知道从哪里开始。

作为我希望看到的混乱的一个例子,这里有一些 Moonbase Alpha 给你:http ://www.youtube.com/watch?v=Hv6RbEOlqRo (确保你戴着耳机!)

将这些新奇的文本到音素转换器、规范化器、无线电话和...

0 投票
1 回答
5566 浏览

.net - 使用 SpeechSynthesizer 使用 SpeechAudioFormatInfo 流式传输 TTS

我正在使用System.Speech.Synthesis.SpeechSynthesizer将文本转换为语音。而且由于 Microsoft 的文档贫乏(请参阅我的链接,没有备注或代码示例),我无法确定两种方法之间的区别:

SetOutputToAudioStream 和 SetOutputToWaveStream。

以下是我的推断:

SetOutputToAudioStream 接受一个流和一个 SpeechAudioFormatInfo 实例,该实例定义了波形文件的格式(每秒样本数、每秒比特数、音频通道等)并将文本写入流。

SetOutputToWaveStream 只接受一个流并将一个 16 位、单声道、22kHz、PCM 波形文件写入流。没有办法传入 SpeechAudioFormatInfo。

我的问题是 SetOutputToAudioStream 没有将有效的波形文件写入流。例如,当将流传递给 System.Media.SoundPlayer 时,我得到一个 InvalidOperationException(“波头已损坏”)。如果我将流写入磁盘并尝试使用 WMP 播放它,我会收到“Windows Media Player 无法播放文件...”错误,但 SetOutputToWaveStream 写入的流在两者中都能正常播放。我的理论是 SetOutputToAudioStream 没有写一个(有效的)标题。

奇怪的是,SetOutputTo*Blah* 的命名约定不一致。SetOutputToWaveFile 采用 SpeechAudioFormatInfo 而 SetOutputToWaveStream 没有。

我需要能够将 8kHz、16 位、单声道文件写入流,而 SetOutputToAudioStream 或 SetOutputToWaveStream 都不允许我这样做。有人了解 SpeechSynthesizer 和这两种方法吗?

作为参考,这里有一些代码:

解决方案:

非常感谢@Hans Passant,这是我现在使用的要点:

对于我的粗略测试,它工作得很好,虽然使用反射有点恶心,但它比将文件写入磁盘并打开流更好。

0 投票
2 回答
2540 浏览

speech-recognition - 语音识别和语音合成入门

我想开始使用基于语音识别的 Prototype中的语音识别和语音合成 有人告诉我使用微软语音服务器(sdk 等)

当我有这个时,我如何对应用程序进行编程,以及使用哪种编程语言(开发环境?)?

有人使用星号或 SVOX 吗?

我需要去做:

语音识别语音合成

我不必是一个非常好的语音识别 - 我认为 30 -50 个单词应该足够开始了。我正在使用 Windows。

提前致谢

0 投票
2 回答
4577 浏览

c# - C# 和 Microsoft Speech.Recognition 和 Speech.Synthesis

我是 C# 的新手,我是 Speech.Recognition 的新手。我搜索了很长时间的教程,但没有找到那么多,我什至不确定我是否正确地包含了所有内容。

我下载了:

我在本地编程,我有 Windows XP、.net framework 3.5。

现在我只想从一些简单的代码行开始,比如说“hello world”或者说一两个词作为输入。

我尝试了以下操作,当然它不起作用:>错误:

“找不到类型或命名空间名称“SpeechSynthesizer”(是否缺少 Using-Direktive 或 Assemblyverweis?)”

编辑:

你好,我试过你的代码,但是使用 SpeechLib;找不到:>

现在我写道:

但我收到一个错误:

numericUpDown1、SpVoice、SpeechVoiceSpeakFlags、textBox1 和超时