问题标签 [speechsynthesizer]

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 回答
995 浏览

asp.net - 使用 ServerXMLHTTP 超时发布 xml

我在两个网站上工作。一个是现有的经典 asp 站点,它将 xml 发布到新的 asp.net (.net 3.5) 网站。经典的 asp 站点在 vbscript 中使用 msxml 的 serverxmlhttp 对象来发送这个 xml。在我对 asp.net 站点进行看似无关的更改之前,整个过程都有效。

当我添加几行使用 System.Speech.Synthesis 从文本生成 wav 文件的代码时,经典的 asp 网站 serverxmlhttp.send 命令超时。据我所知,asp.net 页面工作正常,它通过几行新代码没有问题(生成 wav 文件)。导致问题的几行语音代码在超时之前就完成了。

看起来 asp.net 页面实际上正在向不再发送的经典页面发送某种确认。我还应该指出,语音代码抛出了一个异常,说它需要是异步的,我通过将 Async="true" 添加到 . 但是,它在 async="true" 时有效,只是那些语音线破坏了它。“问题代码”只是

有没有人对可能出现的问题或我可以用来帮助调试的内容有任何建议?

0 投票
3 回答
2245 浏览

c# - 是否有任何日语 TTS 语音可用于 C# SpeechSynthesizer

C# 的 SpeechSynthesizer TTS 有日语语音吗?如果是这样,请说明有关它的详细信息,最好提供文档。

提前致谢。

0 投票
1 回答
1872 浏览

c# - SpeechSynthesizer 的 SpeakProgressEventArgs 是否不准确?

使用 .Net 3.5 中的 System.Speech.Synthesis.SpeechSynthesizer 类,SpeakProgressEventArgs 的 AudioPosition 属性似乎不准确。

以下代码产生以下输出:

代码:

输出:

但是,生成的 .wav 文件的持续时间为 15.69 秒。如果您输出到 Stream 或 null,则会发生相同的行为。

该属性的文档说该属性是“一个 TimeSpan 对象,表示音频输出流中事件的时间位置”。

它应该是指示单词在输出文件中开始或结束说话的时间的准确时间,还是我误解了它?

0 投票
3 回答
3978 浏览

.net - 使用 System.Speech.Synthesis.SpeechSynthesizer 将文本转换为 MP3

我正在尝试将文本转语音保存到 MP3。目前我有 System.Speech.Synthesis 很好地与 WAV 文件对话。

现在注释掉的第一行生成了一个很好的 WAV 文件。目前我正在尝试用 MP3 输出流替换它并且没有太大成功。

我已经尝试过 Yeti.MMedia 转换器,但要么它不起作用,要么我没有让它成功工作。我必须在这里承认,我对编码、速度等知之甚少。

所以我的问题是,有没有人知道我可以这样说的好方法:

并让 SpeechSynthesizer 写入 WAV,然后将其转换为 MP3 并最终在 HDD 上。

0 投票
2 回答
1727 浏览

c# - C# WinForm 无响应 - System.Speech - 帮助

这是来自 C# Windows 窗体的代码

  • 这将读取文本框中的任何内容

尝试实现暂停和停止功能时出现问题。当代码读取某些内容时,任何按钮或菜单项都不会被点击

我刚读到有 SpeakProgressEventArgs http://msdn.microsoft.com/en-us/library/system.speech.synthesis.speakprogresseventargs%28VS.85%29.aspx

我尝试了合成器...异步...但是按钮的单击事件没有被执行

0 投票
1 回答
2499 浏览

c# - C# 中的 SpeechSynthesizer 创建具有 22kHz 的 wav ...需要为 16kHz

我的 C# 应用程序需要将文本转换为 wav 文件并将其注入到 Skype 通话中。创建 wav 文件的代码如下。问题是该文件有 22kHz 的采样率,而 Skype 只接受 16kHz。

有没有办法调整这个设置?

0 投票
1 回答
104 浏览

c# - 你能推荐一个 .NET 的语音合成器吗?

我使用 C#/.NET 的内置语音合成器,但选项有限,我想要更灵活的东西。有什么建议吗?

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 回答
3508 浏览

c# - C# SpeechSynthesizer 使服务无响应

我有以下代码

并且服务什么也不返回。知道为什么会这样吗?