- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对"text-to-speech" Amazon Polly 服务有疑问。
我已将此服务集成到我的聊天机器人中,以便口头描述机器人在聊天中写给用户的内容。
它工作得很好,但我不知道是否可以在她(我选择了女声)说完之前提前停止声音。有时我需要在谈话中说得更远,直到句子结束我才想听。
这是用于集成的代码:
//Html side
function textToSpeech(text) {
$.ajax({
type: 'GET',
url: '/Chat/TextToSpeech?text=' + text,
cache: false,
success: function (result) {
var audio = document.getElementById('botvoice');
$("#botvoice").attr("src", "/Audios/" + result);
audio.load();
audio.play();
}
});
}
Controller 端:
public ActionResult TextToSpeech(string text)
{
string filename = "";
try
{
AWSCredentials credentials = new StoredProfileAWSCredentials("my_credential");
AmazonPollyClient client = new AmazonPollyClient(credentials, Amazon.RegionEndpoint.EUWest1);
// Create describe voices request.
DescribeVoicesRequest describeVoicesRequest = new DescribeVoicesRequest();
// Synchronously ask Amazon Polly to describe available TTS voices.
DescribeVoicesResponse describeVoicesResult = client.DescribeVoices(describeVoicesRequest);
List<Voice> voices = describeVoicesResult.Voices;
// Create speech synthesis request.
SynthesizeSpeechRequest synthesizeSpeechPresignRequest = new SynthesizeSpeechRequest();
// Text
synthesizeSpeechPresignRequest.Text = text;
// Select voice for synthesis.
synthesizeSpeechPresignRequest.VoiceId = voices[18].Id;
// Set format to MP3.
synthesizeSpeechPresignRequest.OutputFormat = OutputFormat.Mp3;
// Get the presigned URL for synthesized speech audio stream.
string current_dir = AppDomain.CurrentDomain.BaseDirectory;
filename = CalculateMD5Hash(text) + ".mp3";
var path_audio = current_dir + @"\Audios\" + filename;
var presignedSynthesizeSpeechUrl = client.SynthesizeSpeechAsync(synthesizeSpeechPresignRequest).GetAwaiter().GetResult();
FileStream wFile = new FileStream(path_audio, FileMode.Create);
presignedSynthesizeSpeechUrl.AudioStream.CopyTo(wFile);
wFile.Close();
}
catch (Exception ex)
{
filename = ex.ToString();
}
return Json(filename, JsonRequestBehavior.AllowGet);
}
输入文本出现在我的聊天中(显然)用于编写和发送(通过按键盘上的 ENTER)问题给机器人。我试图将命令 audio.src=""
放在处理程序中,她停止说话但聊天仍然被阻止......它似乎在等待音频流结束。我必须刷新页面才能看到新消息和回复。
是否有任何我可以使用特定参数集调用的 Amazon 函数,以便通知服务我想停止并清除音频流?
最佳答案
Amazon Polly 返回一个 .mp3
文件。它不负责播放音频文件。
您在播放/停止音频时遇到的任何困难都是您用来播放 MP3 音频文件的代码的结果。它与 Amazon Polly 服务本身无关。
关于c# - AWS - Amazon Polly 文本转语音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43295704/
我正在尝试为我的 Rest 客户创建一个综合弹性策略,为此我编写了以下内容: private static Policy circuitBreakerPolicy = Policy .Han
我以前从未使用过 Polly,不确定这是否适合 Polly。 我正在调用 POST 正文中包含 1000 个 DTO 列表的端点。现在,端点将对每个 DTO 执行一些验证,如果这些 DTO 中的任何一
我将 Polly 与 .net Core 结合使用。我的 ConfigureServices 是: private static void ConfigureServices() { var
我正在使用 .NET 5 并希望使用 Polly 在重试时更改请求的查询字符串。背景 - 我有一个固定的每分钟请求配额,这是我的 IP 地址所允许的。如果超过限制,我会得到一个特定的 4xx 状态代码
Polly 中是否有办法重试除指定异常之外的所有异常。例如: var p = Policy .Handle(e => !(e.NativeErrorCode == 1)) .Or()
我们正在考虑使用 Polly 作为我们的故障转移库。 我们在 kubernetes 环境中运行我们的应用程序。例如,我们无法保证针对特定服务运行重试尝试的 pod 将存活足够长的时间以使请求成功。如果
我正在尝试使超时策略正常工作。我在集成 api 时有以下需求。 创建一个 http 请求来调用 endpoint1 并传递 transactionID 并捕获结果 如果 http 请求在 20 秒内没
在启动过程中,我基本上添加了一个 HttpClient,如下所示: services.AddHttpClient().AddPolicyHandler(GetRetryPolicy()); publi
在策略定义中,我希望能够在运行时禁用或启用该策略,而不是在调用站点中进行,因为我可能有多个调用站点。 这是我目前的方法? private RetryPolicy GetRetryPolicy() {
我对波利很陌生。我做了一些研究,但仍然无法确定是否/如何仅在请求失败时以优雅的方式使用 Polly 来使用 chached 值。例子: 服务 A 想通过 http 从服务 B 获取数据。我总是想获取最
我正在使用 AWS Polly 服务进行文本转语音。但是如果文本包含一些特殊字符,它会返回错误的开始和结束编号。 例如,如果文本是:“Böylelikle”,它返回:{"time":6,"type":
我试图重试失败的操作 3 次。 我正在使用 Polly 进行重试操作。 我想在重试操作失败的情况下获得异常并重试 2 次,依此类推。 return await Policy .H
我已经阅读了 Polly 库的文档和示例,它真的很棒而且易于使用!! 就我而言,我想将所有异常分为 3 种类型:临时、永久和日志。现在,我想要一段代码,负责通过使用 Polly 库进行等待和重试来处理
我在 PolicyRegistry 中有以下政策可以在全局范围内重复使用: var fallbackPolicy = Policy .Handle().OrInner()
我正在尝试检查 Polly 的简单 RetryForever class Program { public static void Main() {
我已经阅读了 Polly 库的文档和示例,它真的很棒而且易于使用!! 就我而言,我想将所有异常分为 3 种类型:临时、永久和日志。现在,我想要一段代码,负责通过使用 Polly 库进行等待和重试来处理
我在 PolicyRegistry 中有以下政策可以在全局范围内重复使用: var fallbackPolicy = Policy .Handle().OrInner()
我正在使用一个非常不稳定的 API。有时我会收到 500 服务器错误 和 Timeout,有时我也会收到 500 服务器错误,因为我给它提供了它无法处理的输入 SqlDateTime overflow
我正在尝试检查 Polly 的简单 RetryForever class Program { public static void Main() {
我想执行某个操作,如果失败3次则返回null。 Polly 中类似的东西将是完美的: var results = await Policy> .Handle() .RetryAsync
我是一名优秀的程序员,十分优秀!