Замедление текста Twilio для воспроизведения голоса в сборе - PullRequest
0 голосов
/ 20 ноября 2018

Я пытаюсь использовать функцию SSMLProsody, чтобы замедлить темп воспроизведения имени человека, а также номера телефона.Я использовал метод пробелов и периодов, чтобы показать темп, но мне хотелось бы большего контроля.Я вижу, что у метода SSMLProsody есть «скорость», которая, я думаю, сработает, но я не могу заставить его работать.Если кто-то может помочь мне с этим, я был бы признателен.Пример моего кода:

var gather = new Gather(allowVoiceResponse ? new List<Gather.InputEnum>(new[] {Gather.InputEnum.Speech, Gather.InputEnum.Dtmf}) : new List<Gather.InputEnum>(new[] { Gather.InputEnum.Dtmf }),
                numDigits: 1,
                hints: "connect me, connect me now, connect",
                timeout: CallLoopTimeout,
                speechTimeout: "auto",
                action: new Uri($"{NotificationConfigurationManager.Configuration.TwilioVoiceApiAddress}ConnectVisitorCallback?{queryParams.GenerateQueryString()}"),
                method: "POST");

if (lowSpeechConfidence)
{
     gather.Play(new Uri($"{NotificationConfigurationManager.Configuration.TwilioVoiceApiAddress}GetSoundClip?siteId={siteId}&index=3"));
}
else
{
     var sayName = new Say(voice: Say.VoiceEnum.Man).SsmlProsody(queryParams.SpacedName, rate: "30%");
     var sayPhone = new Say(voice: Say.VoiceEnum.Man).SsmlProsody(queryParams.SpacedPhoneNumber, rate: "30%");
     gather.Play(new Uri($"{NotificationConfigurationManager.Configuration.TwilioVoiceApiAddress}GetSoundClip?siteId={siteId}&index=1"))
                    .Append(sayName)
                    .Play(new Uri($"{NotificationConfigurationManager.Configuration.TwilioVoiceApiAddress}GetSoundClip?siteId={siteId}&index=2"))
                    .Append(sayPhone);
 }

1 Ответ

0 голосов
/ 21 ноября 2018

Twanio developer evangelist здесь.

<Prosody> и другие команды SSML поддерживаются только при использовании голосов Полли от Amazon .

Итак, где у вас есть:

var sayName = new Say(voice: Say.VoiceEnum.Man).SsmlProsody(queryParams.SpacedName, rate: "30%");

Вам понадобится что-то вроде

var sayName = new Say(voice: Say.VoiceEnum.PollyJoanna).SsmlProsody(queryParams.SpacedName, rate: "30%");

Вы также можете установить голос по умолчанию в консоли Twilio.

...