问题标签 [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 回答
205 浏览

c# - 尝试使用 SpeechSynthesizer 和 NAudio 但进程无法访问该文件

我正在尝试使用 SpeechSynthesizer 和 NAduio,我的代码如下。我似乎无法让它工作。我收到错误消息,

该进程无法访问文件“some file.wav”,因为它正被另一个进程使用。

它发生在线上,

波 = 新 WaveFileReader(路径 + 文件名);

在 synth_SpeakCompleted 方法中。

我不明白什么在使用该文件?引发事件后,SpeechSynthesizer 已完成文件的创建。显然我错过了一些东西。

我只是保存文件,因为我不知道如何直接从 SpeechSynthesizer 转到 NAudio,所以如果有一个解决方案不能保存文件,那就太好了。

该文件很好,当我手动运行它时可以完美运行。

0 投票
0 回答
162 浏览

memory - Uwp SpeechSynthesizer/MediaPlayer 内存泄漏

我们有一个 Uwp 应用程序,它使用 Microsoft 语音来朗读和朗读文本。我注意到应用程序的内存使用量随着每读一段文字而增加,最终会耗尽内存。使用哪种声音或说出什么文本都没有关系。

为了突出显示文本,我订阅了 MediaPlaybackItem 的 TimedMedatataTracks 中的事件。文本说完后,我取消订阅每个事件并处理 MediaPlaybackItem.Source。Visual Studio 内存分析器未显示托管内存中的任何泄漏,因此我怀疑非托管空间中没有清理某些内容。

编辑:我在代码中对此进行了评论,但我会在这里说出来——如果我不订阅 TimedMetadataTrack 事件,泄漏就会消失。我还可以使用Windows 示例应用程序(Synthesize Text with Boundaries)重现这一点

我是否遗漏了需要处理的东西,或者这是 SpeechSynthesizer/MediaPlayer 中的错误?

0 投票
1 回答
1464 浏览

c# - 在 SpeechSynthesizer 中改变声音

我试图更换扬声器,但我没有在SpeechSynthesizer课堂上列出所有已安装的扬声器(George、Susan、Jakub),另一方面,我有一个,根本没有安装(Zira)。

在此处输入图像描述 在此处输入图像描述

这里发生了什么?我可以以某种方式将特定扬声器添加到我的项目中(例如作为 .dll 或其他东西)以不依赖于计算机语言/地区吗?

0 投票
2 回答
113 浏览

c# - 如何使用 Speechsynthezier 在设备上设置和发送语言?(Windows.Media.Speechsynthesis)

在编程方面我是个菜鸟,但我想制作一个语言请求处理程序,在其中我得到一个数组(语法:说语言文本),将其拆分,将设备语言设置为给我的语言和让设备说出给出的文本。我真的找不到任何关于在设备上设置语言的信息。

我正在做一个 UWP 项目,所以我只能使用 Windows.Media.Speechsynthezier。

这是我目前的(未完成!)代码:

//公共类 LanguageRequestHandler

//这应该只是检查发送给我的命令是否具有正确的调用

//这里我想检查请求的语言,实际上我想设置设备应该说的语言(但正如你所知道的那样,它还没有完成)

//在这里,我将给我的文本拆分,并将其组合成一个稍后应该翻译的句子

//最后我正在尝试设置设备的音量和从文本到语音的合成,这应该流式传输到设备并让它说话

0 投票
2 回答
228 浏览

.net - System.Speech.Synthesis 的事件信息中的流编号在哪里?

可以让 SpeechSynthesizer 以异步方式朗读文本,例如:

生成的事件SpeechSynthesizer使我们能够分辨出计算机语音刚刚在说什么。

例如,您可以通过选择如下字符来可视化语音输出:

但是,当SpeakAsync被重复调用时(例如,当我们告诉SpeechSyntesizer说相同的文本而它当前正在说话时),语音请求会排队,并SpeechSynthesizer一个接一个地播放它们。

但是,我无法找出合成器当前正在发出的请求。SpeakProgressEventArgs不要透露这一点

使用 SAPI5,事件提供了StreamNumber

使用这个 StreamNumber,您总是可以知道 SpeechSynthesizer 正在播放/说话的内容。

System.Speech.Synthesis 实现是 SAPI5 实现的现代版本。

但是,我只是没有找到 StreamNumber 指标或类似信息。

System.Speech.Synthesis 提供有关刚刚发生的所有事情的信息,因此它不太可能不提供它正在处理的请求的信息。

这怎么可能找回来?

0 投票
1 回答
2248 浏览

asp.net-core - 如何在 ASP.NET Core 2.0 中使用 SpeechSynthesizer

我正在尝试将文本保存到使用 ASP.NET Core 2.0 开发的 Web 应用程序中的音频文件中。

我正在尝试寻找对 System.Speech 的支持,但命名空间在 .NET Core 中似乎不可用。

谁能给我任何备用类库来将文本保存到音频文件(MP3)。

我找到了一些 ScriptCs 代码示例,但它们对我不起作用。

有人有什么建议吗?

0 投票
3 回答
742 浏览

c# - 如何让 SpeechSynthesizer 通过特定设备说话?

我是语音识别的新手,所以如果问题非常基本,请原谅。

我的应用程序通过麦克风捕捉我所说的内容。我已经使用我的 c# 代码为我说的每个命令编写了一些响应,并且 SpeechSynthesizer 使用下面提到的代码执行此操作没有任何问题。但我希望 SpeechSynthesizer 通过我的笔记本电脑扬声器而不是我的默认输入设备(我的麦克风)做出响应。可行吗?

我目前使用的代码如下。我正在寻找可以让所有播放设备可用的东西,然后使用我的扬声器选择并回复。

0 投票
1 回答
57 浏览

javascript - window.speechSynthesis.speak 不会说话,除非没有其他命令不完整

我正在尝试用 javascript 编写测试代码,我尝试同时记录和发音一个随机数。SpeechSynthesisUtterance对于我使用的文本到语音window.speechSynthesis

当我运行这段代码时,我会立即得到所有的日志,只有在一切都完成后,我才开始一个一个地听到 100 个演讲。因此,似乎生成的所有语音都被累积起来,然后当没有其他命令可以完成语音生成器时,它们会立即吐出所有语音。有没有办法改变这种行为并能够以正确的顺序发音?

我已经用 Google Chrome 75 试过了。

0 投票
0 回答
74 浏览

c# - 通过 Speech SpeechSynthesizer C# 下载生成的音频

这是代码:

播放完成后,我希望它自动下载制作的音频,有什么办法可以做到吗?

0 投票
1 回答
76 浏览

forms - SpeechSynthesizer 如何让声音更人性化

我有一个表单应用程序,我在其中使用系统语音来阅读单词。但是,它听起来像机器人,如何让它更像人类?

我正在使用这个:使用命名空间 System::Speech::Synthesis;

还有这个: SpeechSynthesizer^speaker=gcnew SpeechSynthesizer(); 扬声器->SpeakAsync(textBox1->Text);

该程序虽然有效,但我希望它听起来像一个人。