1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Alexaスキルでレスポンスを流暢な英語にする方法

Last updated at Posted at 2019-06-10

背景

先日行われたAlexaスキルアワード2019のハッカソンにて、レスポンスを英語で返すスキルを開発していたところ、流暢な英語を話させる為にちょっとしたハック?が必要で苦労した。

目的

SSMLを使ってスキル内の一部のレスポンスを流暢な英語にする。

※ SSMLは音声の速さや強弱などをHTMLライクに制御できる音声合成マークアップ言語です。

langタグで素直に指定してみる

現状リージョンが日本のアレクサスキルでユーザー側が英語で入力する事は不可能だが、SSMLlangタグを使ってスキルからのレスポンスはネイティブ英語にできると聞いていたので、以下のようにen-USを指定して試してみた。

<speak>
    <lang xml:lang="en-US">Hello world</lang>
</speak>

あれ?カタコト英語になっちゃう。。。

普通にこれでいけそうだけど??

ドキュメントを読み返す

よくよくドキュメントを読み返していると衝撃的な事実が。

Alexaはスキルの元の言語で利用できるサウンドを使用して発音します。このため、ネイティブスピーカーとまったく同じようには聞こえない可能性があります。langタグだけを使用した場合よりも自然な音声にするには、langタグとvoiceタグを一緒に使います。

日本語の音素を元にネイティブ英語を精製しようとしていたわけですね。それは厳しいですね。。

voiceタグを使って記述を修正する

<speak>
    <voice name="Joey">
        <lang xml:lang="en-US">Hello world</lang>
    </voice>
</speak>

これでバッチリいけました!

Joeyという声サンプルを使ってますが、ベースの音素が増えて英語を流暢に話してくれるようです。
ちなみにen-USの声のラインナップは以下になっています。

  • Ivy
  • Joanna
  • Joey
  • Justin
  • Kendra
  • Kimberly
  • Matthew
  • Salli

まとめ

ドキュメントを読めばちゃんと書いてあるのですが、地味に苦労したので記事にしておきました。

肝心のハッカソンは全然ダメだったのでもっと技術力を上げてリベンジします。

公式ドキュメント:
LANG
VOICE

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?