音声応答を聞き取りやすくする

音声応答を聞き取りやすくする

実際に抽選スキルを動かしてみると、Alexaの応答のテンポが良過ぎて、イベント会場などで使うには適さないように感じるかもしれません。そこで、このスキルをより使いやすく(応答を聞き取りやすく)するために、応答文の中に待ち時間を入れてみましょう。

コード例の一部を次のように書き換えます。

リスト16:getWinnersSpeech() 関数の一部を以下のように修正

const winnersString = winners.join('<break time="1s"/>,');
const winnersSpeechSingle = '当選者は、<break time="1s"/>' + winnersString + '<break time="1s"/>です。';
return winnersSpeechSingle + '<break time="1s"/>繰り返します。' + winnersS//}peechSingle;


//list[list17][drawLots()関数の一部を以下のように修正]{
const speechOutput =
    '抽選しています。<break time="3s"/>' +
    '抽選が終わりました。当選者を発表します。' +
    winnersSpeech +
    repromptSpeech;

Lambda 関数を更新してもう一度実行してみます。今度は十分な間隔を空けて当選者が読み上げられるので、かなり聞き取りやすくなったことと思います。このように、応答メッセージの文字列の中に特別なタグを入れることで、メッセージの読み上げられ方を制御することができます。このタグは、音声合成マークアップ言語(Speech Synthesis Markup Language、SSML)と呼ばれる形式で記述します。SSMLで書かれた音声合成の例を示します。

リスト18:SSMLの例

<speak>
  応答メッセージです。3秒待ちます<break time="3s"/>
  一文字ごとに読み上げます <say-as interpret-as="spell-out">abc</say-as>
</speak>

「<speak></speak>」タグに挟まれた部分が音声メッセージとなりますが、これまで使用してきたAlexa Skills Kit SDKのspeak()関数やreprompt()関数などを使う際にはこのタグが自動的に付加されますので、応答メッセージを組み立てる際にはタグ内の本文のみを記述します。

SSMLを使うと、待ち時間を入れられるだけでなく、様々な効果を応答メッセージに追加できます。先ほどのgetWinnersSpeech()関数にもうひとつ修正を加えてみましょう。

リスト19:SSMLの使用例

const winnersSpeechSingle = '<prosody volume="x-loud">当選者は、<break time="1s"/>' + winnersString + '<break time="1s"/>です。</prosody>';

当選者の読み上げ部分だけ、少し声を大きくすることができました。他にも、ささやき声にしたり、予め録音した音声を流すこともできます。音声合成マークアップ言語(SSML)のタグについては以下のページを参照してください。

音声合成マークアップ言語(SSML)のリファレンス

以上、抽選スキルを使ってステートフルなサービスの実現と、音声応答の制御方法を学びました。ここまでに解説した内容だけでも様々なことをAlexaで実現できるようになります。ぜひ活用してみてください。

この記事のキーワード :

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30