Воспроизвести только звуковой ответ в SSML? - PullRequest
0 голосов
/ 01 октября 2018

Мне было интересно, можно ли не включать текст в мой SSML, поскольку в моем аудиофайле написано «Готовы ли вы играть?», Мне не нужна речь самого помощника Google.

app.intent('Default Welcome Intent',(conv) =>{

  const reply = `<speak>
  <audio src="intro.mp3"></audio>
   </speak>`;
  conv.ask(reply);

});

Приведенный выше код выдает ошибку, поскольку у меня нет ввода текста.

Ответы [ 3 ]

0 голосов
/ 01 октября 2018

Ошибка, которую вы, вероятно, получили, была что-то вроде

Ожидаемые_входы [0] .input_prompt.rich_initial_prompt.items [0] .simple_response: должен быть установлен 'display_text' или 'ssml' должен иметь действительныйОтображение дисплея.

Как отмечается, существуют условия, когда помощник запускается на устройстве с дисплеем (например, на вашем телефоне), и на нем должно отображаться сообщение, которое по существу совпадает сВоспроизведение аудио.

У вас есть несколько вариантов, подходящих для этих случаев.

Сначала вы можете указать дополнительный текст внутри тега <audio>, который будет отображаться, но не считываться.(если аудиофайл не может быть загружен по какой-либо причине).

<speak>
  <audio src="intro.mp3">Are you ready to play?</audio>
</speak>

Кроме того, вы можете предоставить отдельные строки, которые представляют версию SSML и текстовую версию того, что вы говорите.

const ssml = `<speak><audio src="intro.mp3"></audio></speak>`;
const text = "Are you ready to play?";
conv.ask( new SimpleResponse({
  speech: ssml,
  text: text
}) );
0 голосов
/ 07 ноября 2018

Другой способ обмануть, попытаться использовать пустое пространство, чтобы не получить Нет ответа Ошибка (... не отвечает сейчас)

conv.ask(new SimpleResponse(" "))
const reply = `<speak>
  <audio src="intro.mp3"></audio>
   </speak>`;
conv.ask(reply);
0 голосов
/ 01 октября 2018

Для этого нашел хакерскую работу, добавив очень короткую строку и поместив ее в тег просодии с тихой громкостью:

app.intent('Default Welcome Intent',(conv) =>{
  const reply = `<speak>
  <audio src="intro.mp3"></audio>
  <prosody volume ="silent">a</prosody> </speak>`;
  conv.ask(reply);

});

Воспроизводит звук и не говорит «а».'text.

...