kun432's blog

技術ネタ、読書記録、など。2015年から人生をやり直し中です。

Voiceflowのアップデートご紹介 ① Speak Block

先日、Voiceflowで大幅なUI周りのアップデートがありました。

実はこのアップデートのおかげで技術書典で出す予定のVoiceflow本の大幅な修正が必要になり四苦八苦したのですが(なんとか修正完了、予定通り出せます!)、その過程で大体の変更点をおさえたので、複数回に分けてご紹介しようと思います。設定のやり方自体が大幅に変わってるところもありますので、ぜひ新しいUIに慣れていただければと思います。

第1回は一番良く使う「Speak Block」です。


Speak Blockの変更点は以下です。

  • SSML Editorが追加されました。これまではテキスト入力しかなかったのですが、かんたんにSSMLタグを設定することができます。
  • 1ブロック内で、複数の発話とサウンドを登録することができましたが、これの順序をドラッグ&ドロップで入れ替えることができるようになりました。
  • その他見た目などが変わっています。

SSML Editor

使い方

アルファ版では単独機能として利用可能だったSSMLエディターが、Speak Blockの機能として組み込まれました。これまでテキストで入力するしかなくタイプミス等によるエラーも頻発していたため、ミスなく簡単に使えるようになりました。

早速やってみましょう。例として、Alexaスキルのハンズオンでよくある「コーヒーショップ」スキルを作ってみたいと思います。

Speak Blockをドラッグ&ドロップで配置して線でつなげます。ここまでは一緒です。メニューの文言とかもちょこちょこ変わっていますね。

f:id:kun432:20200210214054p:plain

Speak Blockの設定画面です。文言とか結構変わっていますよね。ちょっとそこは置いといて、試しにSpeak Blockに以下のテキストを入力します。

コーヒーショップへようこそ。

f:id:kun432:20200210214017p:plain

「ようこそ」の部分を選択して、「ADD EFFECT」をクリックします。メニューが表示されます。

f:id:kun432:20200210214718p:plain

「ようこそ」のボリュームを少し上げるようにしてみましょう。「Volume」→「Loud」と選択してみてください。

f:id:kun432:20200210214729p:plain

選択した「ようこそ」がSSMLタグがくくられて、自動的に挿入されます。かんたんですね!

f:id:kun432:20200210214812p:plain

さらにスピードも変えてみましょう。「ようこそ」を選択したまま、今度は「ADD EFFECT」→「Speech Rate 」→「Slow」と選択してみてください。

f:id:kun432:20200210215249p:plain

タグがネストされますね。音量もスピードもProsodyタグなので、本来は一つで書けるんですが、まあ致し方ないかなと。

f:id:kun432:20200210215406p:plain

挿入したタグの設定を変えたい場合はそのタグの属性部分をクリックすると変更ができます。

f:id:kun432:20200210222342p:plain

削除する場合は、前後どっちのタグでもいいのでタグのあとにカーソルを合わせてBackspace/Deleteすればよいです。前後のタグを両方消してくれます。

f:id:kun432:20200210222526p:plain

SSML Editorの注意

そんな便利なSSML Editorですが、逆にいくつか注意した方がいいかなと思うこともお伝えしておきます。

複数のSSMLをネストして設定する場合、適用するテキスト文字列だけを選んでSSMLを設定する。

どういうことかというと、以下の状態から「ようこそ」にさらにスピードを調整するSSMLを追加するとします。

f:id:kun432:20200210223112p:plain

ネストするからといってこうしないほうがいいです。

f:id:kun432:20200210223148p:plain

こう選択してSSMLを設定するとどうなるか?こうなります。

f:id:kun432:20200210223421p:plain

タグとして解釈される場合は緑色になるのですが、タグ自体を選択してSSMLを追加すると文字列になってしまいます。

正解はこうですね。

f:id:kun432:20200210223129p:plain

ただしSSMLとしてはちゃんと認識されるし動作はするので、あくまでもSSML Editorとしては認識できないというだけで、そこまで困らないです。

対応していないSSMLタグがある

具体的にいってしまうとlangタグがSSML Editorでは対応されていません。どういうことなのか見てみましょう。

Voiceflowでは音声をかんたんに変えることができます。日本語の場合は、標準のAlexaからMizukiとTakumiに変更できます。日本語から日本語の別の声にするのであれば何も問題ないですが、問題になるのは他の言語の声を使う場合です。

f:id:kun432:20200210230348p:plain

「System」をクリックして、ひとつ下に発話を追加します。

f:id:kun432:20200210230557p:plain

「Welcome to coffee shop.」と入力し、音声をAlexaからen-USのJoannaに変えます。

f:id:kun432:20200210230746p:plain

これでAlexa開発者コンソールでテストしてみると、こういう感じになります。

英語の読み上げがおかしいですよね。出力されているSSMLを見るとこんな感じです。

<speak>コーヒーショップへようこそ。
    <voice name="Joanna">Welcome to coffee shop.</voice>
</speak>

SSMLのVoiceタグはあくまでも音声だけを変えてくれるものであって、言語までは切り替えてくれないのですね。なので英語のテキストを日本語として読み上げようとする上、日本語に対応していない声が選択されているというわけです。

ただしくは以下のようにlangタグで言語をしてしてあげる必要があります。

<speak>コーヒーショップへようこそ。
    <voice name="Joanna"><lang xml:lang="en-US">Welcome to coffee shop.</lang></voice>
</speak>

で、Voiceflowの場合ですが、音声はSpeak Blockで選べるようになっているのですが、langタグがSSMLエディタに対応しておらず、ここは手で入力する必要があります。

f:id:kun432:20200210232711p:plain

が、これしばらくすると勝手にこうなっちゃうのですね。属性が消えてしまう。

f:id:kun432:20200210232756p:plain

こうなっちゃうともう中身を触ることができません。一応動くのは動いてるし、中のテキストは編集できるので困らないといえば困らないんですが。

こちらも要望上げているので追加してくれるといいなと思ってます。

ブロック内の順序を変えることができる

もう一つの機能をご紹介します。これ、以前はできていたんですが、昨年のアップデートでなくなってしまい、その後要望も多かったのか復活した機能です。

さっきの続きで説明すると、このように2つ発話が並んでいるとします。

f:id:kun432:20200210234217p:plain

2つ目の「System Says」と書かれたところをドラッグ して、1つ目の前に移動してマウスを離してください。

f:id:kun432:20200210234452p:plain

このように順番を入れ替えることができます。これはなにげに便利ですね!

f:id:kun432:20200210234255p:plain

削除もかんたんです。ドラッグすると、ゴミ箱アイコンが見えるのでそこにドロップするだけです。

f:id:kun432:20200210234657p:plain


以上、VoiceflowのSpeak Blockのアップデートのご紹介でした。次回は今回の目玉となる新しいChoice Blockについてご紹介します。