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

c# - RegistryPermission 的 SpeechSynthesizer 注册表项

如何找出 SpeechSynthesizer 正在使用的注册表项。我需要使用 RegistryPermission 添加它们,以便我可以再次使用 SpeechSynthesizer。

我在自己的 appdomain 中拒绝了每个访问作为标准访问,并添加了以下访问,所以我认为我只需要 RegistryPermission 但我不知道如何获得它们。

提前致谢。

0 投票
1 回答
272 浏览

c# - How to cancel SpeechSynthesizer from writing to file, while keeping the audio that was produced?

I am trying to write the output of SpeechSynthesizer to a .wav file. If the synthesis is completed, everything works well and the output file is playable;

But if I cancel the synthesis to the file through the following code (because the process is too long and I may want to cancel it) the output file produces no sound! (the produced file is not zero in size but nothing is played).

I look for a solution in which I can cancel the audio generation, but the audio file can be played to the portion before it was canceled.

Is there any way I can achieve this?

0 投票
2 回答
130 浏览

c# - 如何在锁定屏幕期间播放 Windows Phone 8 SpeechSynthesizer?

我有以下代码可以在 Windows Phone 8 应用程序中将文本合成为语音,但是我似乎无法弄清楚如何在锁定屏幕/屏幕关闭/或在后台连续播放它。有没有人有关于如何做到这一点的建议或代码片段?

0 投票
1 回答
47 浏览

c# - 当我尝试将语言设置为 SpeechRecognize (WP 8.1) 时不起作用

当我尝试将语言设置为 SpeechRecognize (Windows Phone 8.1) 时,它会运行异常。但是在文档中告诉我按照我正在做的方式做 D;

这有效:

这不起作用:

有人可以帮助我吗?

0 投票
0 回答
209 浏览

c# - 从 IIS 启动程序时创建 SpeechSynthesizer / DefaultDeviceOut 时出现 NulLReferenceException

我创建了一个简单的命令行程序来将文本转换为.WAV文件。

该程序有 2 个参数

  1. 创建.WAV文件的路径
  2. 文本变成一个.WAV

这是我在尝试将输出设置为默认音频设备时遇到的错误:

你调用的对象是空的。在 System.Speech.Internal.ObjectTokens.SAPICategories.DefaultDeviceOut() 在 System.Speech.Internal.Synthesis.VoiceSynthesis..ctor(WeakReference speechSynthesizer) 在 System.Speech.Synthesis.SpeechSynthesizer.get_VoiceSynthesizer() 在 System.Speech.Synthesis。 SpeechSynthesizer.SetOutputToNull() at System.Speech.Synthesis.SpeechSynthesizer.SetOutputStream(Stream stream, SpeechAudioFormatInfo formatInfo, Boolean headerInfo, Boolean closeStreamOnExit) at System.Speech.Synthesis.SpeechSynthesizer.SetOutputToDefaultAudioDevice() at TTS.Program.Main(String[]参数)“

对此的任何帮助将不胜感激。

0 投票
1 回答
1060 浏览

c# - 将 System.Speech.Synthesis 与 Windows10 通用应用程序 (XAML-C#) 一起使用

我尝试使用 System.Speech.Synthesis 中的 SpeechSynthesizer,因为它似乎比我之前使用的 (Windows.Media.SpeechSynthesis) 更全面:我希望能够设置音量、声音的性别,...此外,法语发音有一些错误,所以我想检查 System.Speech 是否更好。

我添加了参考,但构建给出了这个错误,我无法修复它:

0 投票
0 回答
1447 浏览

c# - 将视频字幕与文字转语音同步

我尝试创建一个文本视频,其中文本通过文本转语音进行叙述。

要创建视频文件,我使用VideoFileWriter如下Aforge.Net

要大声朗读文本,我使用SpeechSynthesizer类并将输出写入波流

我想突出视频中所说的单词,所以我通过SpeakProgress事件同步它们:

最后,我使用合并视频和音频ffmpeg

问题是对于 Microsoft Hazel、Zira 和 David 等某些声音,在 windows 8.1 中,视频与音频不同步,并且音频比显示的字幕快得多。但是,对于 Windows 7 中的声音,它可以工作。

如何同步它们,使其适用于任何操作系统上的任何文本到语音的语音?

似乎e.AudioPosition不准确,因为SpeechSynthesizer 的 SpeakProgressEventArgs 是否不准确?,我有同样的实验和同样的结果。

我注意到如果我调整音频格式,我可以接近实际时间,但它不适用于任何声音。

0 投票
2 回答
1120 浏览

c# - 如何找到 SpeechSynthesizer 所选声音的音频格式

在 C# 的文本到语音应用程序中,我使用SpeechSynthesizer类,它有一个名为的事件,它SpeakProgress会为每个说出的单词触发。但是对于某些声音,参数e.AudioPosition与输出音频流不同步,并且输出波形文件的播放速度比这个位置显示的要快(参见这个相关问题)。

无论如何,我正在尝试找到有关比特率的确切信息以及与所选语音相关的其他信息。正如我所经历的,如果我可以使用此信息初始化波形文件,同步问题将得到解决。但是,如果我在 中找不到此类信息SupportedAudioFormat,我不知道有其他方法可以找到它们。例如,“Microsoft David Desktop”语音在 中不提供支持的格式VoiceInfo,但它似乎支持 PCM 16000 hz、16 位格式。

如何找到 SpeechSynthesizer 所选声音的音频格式

0 投票
2 回答
247 浏览

c# - 取消按钮取消 SpeakAsync 方法没有响应

我有一个取消按钮来取消语音合成器的 speakAsync 方法。它通过 a 调用,PromptBuilder输出设置为波形文件,如

并取消它如下:

但问题是,当我单击取消按钮时,代码永远不会执行!实际上它对按钮单击没有响应并且没有执行!

我尝试Application.DoEvents()在 speak_progress 中使用,但也无济于事!

0 投票
4 回答
6465 浏览

c# - SpeechSynthesizer.SelectVoice() 失败并显示“未安装匹配的语音或语音已禁用”

我正在修改Scott HanselmanBabySmash代码以支持其他语言。

  1. 我按照这些步骤安装了语音平台和新语言。
  2. 该语言现在显示在注册表中:

    在此处输入图像描述

  3. 现在可以通过 Windows 选择和播放语言:

    在此处输入图像描述

  4. System.Speech.Synthesis.SpeechSynthesizer.GetInstalledVoices()现在返回声音。

  5. 但是SelectVoice()在下面的代码中抛出错误“System.ArgumentException:无法设置语音。没有安装匹配的语音或语音被禁用。”
  1. 我已经尝试升级到C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Speech.dll.

  2. 我已经验证了版本Microsoft.Speech.dll语言包匹配。

    在此处输入图像描述

  3. 此代码适用于我已经安装的默认声音。

  4. 无奈之下,我什至尝试System.Speech.Internal.Synthesis.VoiceSynthesis.GetVoice()通过反射直接调用,但同样的错误。

我将不胜感激您能提供的任何帮助!谢谢。