问题标签 [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 投票
3 回答
4606 浏览

iis - 系统上未安装语音或当前安全设置不可用

IIS 服务器上的异常尝试使用 SpeechSynthesizer 在 c# 上创建 .wav 文件时。

0 投票
1 回答
1775 浏览

.net - ASP.NET 中的 SpeechSynthesizer - 异步错误

我希望能够通过调用在我的 ASP.NET 应用程序中生成语音speak.aspx?text=Hello%20world。这将以.wav格式给出响应。

到目前为止,我有一个空白页,后面有代码:

但是,这失败并显示消息:

InvalidOperationException:在此上下文中不允许异步操作。启动异步操作的页面必须将 Async 属性设置为 true,并且只能在 PreRenderComplete 事件之前的页面上启动异步操作。

如果我添加Async="true"@Page指令中,代码会运行,但对页面的请求会无限期挂起。请你让我知道出了什么问题,并显示正确的代码/方法来使用?

注意我不能只使用 Google 文本转语音 API,因为它只允许 100 个字符或更少的字符串。

谢谢你。

0 投票
3 回答
2491 浏览

java - 运行时错误 - JSAPI HelloWorld 程序

使用 JSAPI 运行基本 HelloWorld 程序时,显示错误“java.lang.NullPointerException at HelloWorld.main(HelloWorld.java:11)”

以下是代码:

编辑:我编辑我的程序:

它给出了输出:

SynthesizerModeDesc 似乎工作正常,但它没有检测到任何引擎,因为我尝试将 null 也传递给函数 Central.createSynthesizer(即获取默认引擎),但它仍然返回 null。我检查了它正在检测的引擎数量,但它显示为 0。

请帮我 !!:(

0 投票
0 回答
253 浏览

c# - SpeechSynthesizer 说格式不正确?

SpeechSynthesizer ss = new SpeechSynthesizer(); ss.Speak("Hello.");

...(对于文本到语音)导致错误:“用户代码未处理格式异常”...“输入字符串的格式不正确。” 它只是一个字符串,但它说格式错误?

我尝试过带和不带标点符号的其他词,尝试过使用 PromptBuilder 代替字符串,尝试过 MSDN 示例代码(尽管基本相同)......我尝试过的任何代码都会给出相同的错误。有任何想法吗?

0 投票
2 回答
1519 浏览

c# - 我能否在我的应用中安装其他 TTS 应用无法访问的自定义 SAPI 语音?

我使用 SAPI 5.x 在 C# 中开发了一个 TTS(文本到语音)应用程序。我想许可或开发我自己的语音配置文件(或语音文件),这些配置文件将专门用于我的应用程序。

也就是说,它不会以与安装常规 SAPI 语音相同的方式安装,因为我不希望其他 TTS 应用程序能够使用语音并且我不希望用户能够在他们的系统控制中选择自定义语音控制板。

可能吗?目前我使用 SpeechSynthesizer.SelectVoice("Microsoft Anna"); 但我需要以某种方式使用 SelectVoice 来使用我自己的“私人”语音文件,该文件与我的应用程序一起安装。

感谢您对此主题的任何建议或帮助。

0 投票
1 回答
2542 浏览

c# - c# SpeechSynthesizer SpeakCompleted 返回变量

希望有人能帮忙!:)

我想要实现的是让 reader_Speak() 方法在说完后返回 true。类似于旧 SpeechLib 的 WaitUntilDone。

这是我的代码:-

这就是我想要的:-

有人有什么建议吗?谢谢。

0 投票
2 回答
4159 浏览

c# - ASP.NET MVC 中的超快速文本转语音 (WAV -> MP3)

这个问题本质上是关于 Microsoft 的 Speech API (SAPI) 对于服务器工作负载的适用性,以及它是否可以在w3wp内部可靠地用于语音合成。我们有一个异步控制器,它使用System.Speech.NET 4 中的本机程序集(不是Microsoft.Speech作为 Microsoft 语音平台 - 运行时版本 11 的一部分提供的程序集)和lame.exe 来生成 mp3,如下所示:

问题是为什么SpeechSynthesizer需要在这样的单独线程上运行才能返回(这在 SO herehere的其他地方有报告)以及为此请求实现STAThreadRouteHandler是否比上述方法更有效/可扩展?

SpeakAsync其次,在 ASP.NET(MVC 或 WebForms)上下文中运行的选项有哪些?我尝试过的所有选项似乎都不起作用(请参阅下面的更新)。

欢迎任何其他关于如何改进这种模式的建议(即两个必须彼此串行执行但每个都支持异步的依赖项)。我觉得这个方案在负载下是不可持续的,特别是考虑SpeechSynthesizer. 考虑在不同的堆栈上一起运行此服务。

更新:SpeakSpeakAsnc选项似乎 都不适用于STAThreadRouteHandler. 前者产生:

System.InvalidOperationException:在此上下文中不允许异步操作。启动异步操作的页面必须将 Async 属性设置为 true,并且只能在 PreRenderComplete 事件之前的页面上启动异步操作。在 System.Web.LegacyAspNetSynchronizationContext.OperationStarted() 在 System.ComponentModel.AsyncOperationManager.CreateOperation(Object userSuppliedState) 在 System.Speech.Internal.Synthesis.VoiceSynthesis..ctor(WeakReference speechSynthesizer) 在 System.Speech.Synthesis.SpeechSynthesizer.get_VoiceSynthesizer( ) 在 System.Speech.Synthesis.SpeechSynthesizer.SetOutputToWaveFile(字符串路径,SpeechAudioFormatInfo 格式信息)

后者导致:

System.InvalidOperationException:无法同步执行异步操作方法“Listen”。在 System.Web.Mvc.Async.AsyncActionDescriptor.Execute(ControllerContext 控制器上下文,IDictionary`2 参数)

似乎自定义 STA 线程池(带有ThreadStaticCOM 对象的实例)是一种更好的方法: http: //marcinbudny.blogspot.ca/2012/04/dealing-with-sta-coms-in-web.html

更新 #2:似乎System.Speech.SpeechSynthesizer不需要 STA 处理,只要您遵循该Start/Join 模式,似乎在 MTA 线程上运行良好。这是一个能够正确使用的新版本SpeakAsync(问题是过早地处理它!)并将 WAV 生成和 MP3 生成分解为两个单独的请求:

0 投票
1 回答
67 浏览

cocoa - 在用户默认值中存储语音 - Cocoa

我想在用户默认值中存储语音。既然我们不能直接存储语音,那么存储它的最佳方式是什么?[NSSpeechSynthesizer availableVoices]安装新语音后,使用数组中的索引可能会有所不同。NSData那么使用它的标识符转换为或存储呢?

0 投票
1 回答
1886 浏览

.net - 使用 SpeechSynthesis 将文本转换为语音时,对 .NET 4.5 中 WebAPI 中的 HTTP Get 请求没有响应

我正在尝试使用 WebAPI 设置一个简单的 Web 服务。这是我的代码:

代码相当简单,而且还没有准备好生产。但是在我的测试中,我注意到对控制器的任何请求都会发生以下情况:

  • WAV 文件生成成功
  • 在调试期间,我可以看到控件点击返回并退出该方法
  • 但是,我的浏览器一直在旋转,我从来没有从服务器得到响应

我对 Postman(Chrome 的 REST 客户端)进行了同样的尝试,得到了相同的结果。虽然我确实希望这是一个阻塞调用,但为了尝试其他我修改过的东西synthesizer.Speaksynthesizer.SpeakAsync遇到同样的问题。

但是,当我如下所示分别测试代码片段时,代码按预期工作。

测试带有语音部分的 WebAPI 调用已注释掉:

在控制台应用程序中单独测试语音:

WebAPI 和 SpeechSynthesis 似乎不能很好地配合使用。任何帮助弄清楚这一点将不胜感激。

谢谢!

0 投票
2 回答
980 浏览

c# - Windows Phone 8 语音合成器暂停

我正在开发一个应用程序,我想在 SpeechSynthesizer.SpeakTextAsync 运行时暂停并从那里恢复。

什么时候停止阅读var stop = true;