Как изменить произношение речи - условный SSML? - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть следующий код вида

template ("Here's an AltBrain by #{value(this.author)} on #{value(this.name)}") {speech ("Here's an AltBrain by #{value(this.author)} on #{value(this.name)}")}

Когда он встречает значение (this.author) = "GitLab", он произносит произношение "Gitlib". Как я могу это исправить?

Я вижу, что мог бы использовать SSML для выступлений и подкоманд, как это

<speak> ... <sub alias = \"Git Lab\"> ... but how do I do this dynamically where I want it to adjust this.name if and only if it is a term that has a different pronunciation?

Обратите внимание, что, продолжая исследовать это, я понимаю, что есть фундаментальная проблема это то, что везде, где Биксби сталкивается с «GitLab», она будет неправильно произносить его. Нам нужен механизм для глобальных изменений в этом, как файл диалога. Есть ли такая вещь?

Ответы [ 2 ]

2 голосов
/ 07 апреля 2020

Во-первых, это звучит как ошибка TTS, которую нужно исправить на платформе Bixby. Я запишу билет на это.

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

Вот диалоговое окно значений:

dialog (Value) {
  match: TextSource (this)
  if (this == 'GitLab') {
    template("Git Lab")
  }
  else {
    template("#{raw(this)}")
  }
}

Вот как воспользоваться диалоговым окном значения.

  message {
    template ("From #{raw(action.question.source)}, #{value(action.question.textQuestion)}") {
      speech ("From #{value(action.question.source)}, #{value(action.question.textQuestion)}")
    }
  }

Для полной проверки капсулы, скачать его с Github . Я сделал капсулу для другой цели, но попробуйте высказывание «попробуйте один вопрос» и посмотрите на входное представление.

0 голосов
/ 06 апреля 2020

Это отвратительный взлом, который предоставляет только частичное решение.

  if (exists(this.author) && this.author == 'GitLab')
       { template ("Here's an AltBrain by **GitLab** on #{value(this.name)}")
 {speech ("Here's a AltBrain by **Git Lab** on #{value(this.name)}")}}

   else ...

...