日本VUI推進会とは
日本VUI推進会は「国内でのVUI利用を活性化させよう」を基本理念に持つIT技術者集団です。
VUI(ボイス・ユーザー・インターフェイス)は、iPhoneのSiriやAndroidのGoogleアシスタント、
Amazon Echoのスマートスピーカーなどのように「声」を使って機械を操作するもののことを言い、既に広く一般に普及しているものです。
ところが、これだけ媒体が多く普及しているにも関わらず、こと日本国内においては今一つ利用頻度が増えていないというのが実情です。
そのような現状に憂い、一念発起したのが我々、非営利団体「日本VUI推進会」です。
私達は『VUIはオモシロイ』を合言葉に、日々新しいVUI機能を開発・提供していきます。
VoiSITEのご提案
VoiSITE(ボイサイト)とは、我々が提案する拡張HTML機能が埋め込まれた新しいWEBサイトの呼称です。
通常WEBサイトは、HTML(Hyper Text spanup Language)形式で記述されているファイルやデータをWEBブラウザ(Chrome、EDGE、Safari等)にて視覚化したものを指します。
また、WEBサイトには、他のWEBサイトへ遷移するためのリンクが埋め込まれていて、連鎖的にサイトを巡ることができる仕組みになっています。
HTMLには音声や動画なども組み込むこともできるのですが、操作はすべて画面上でタップやクリックするGUI(Graphical User Interface)です。
このHTMLにVUI(Voice User Interface:音声での操作)用の特殊なタグを追加定義し、特殊タグの埋め込まれたWEBサイトに対して、Alexaなどの音声デバイスを使ってアクセスすることで、サイトのコンテンツを聴覚情報として提供したり、音声操作のみでサイトを巡回できるようにしよう。このような仕組みが実現できれば、今までのWEBサイトに新たな価値を見出すことができる…
このような思想で我々が開発に着手したのがAlexaスキル「VoiSITE Browser」です。
「VoiSITE Browser」は特殊なHTMLタグが埋め込まれたWEBサイト(VoiSITE)に簡単にVUI機能をもたらす画期的な機能となっています。
VoiSITE用のHTMLタグが埋め込まれたサンプルはこちらです。
またこちらのサンプルのように簡単なプログラムコードを埋め込むことも可能です。プログラミング学習の題材としてもお使いいただけます。
「VoiSITE Brower」でアクセス可能なサイトの構築方法はマニュアルをご参考ください。
VoiSITEに興味のある方、試してみたい方はお気軽にお問い合わせください。
VoiSITE作成マニュアル
作成手順
1.VoiSITE用の拡張タグ(後記)を埋め込んだHTMLファイルをWebサーバーに配置します
2.問い合せ」ページより上記URLを記載の上、VoiSITEの登録申請を行います。(審査に数日要します)
3.申請が承認された場合、サイト固有のIDがメールにて通知されます。
4.Alexaスキル『VoiSITE Browser』を起動して、「サイトIDを指定」と発話し、割り当てられたIDを指定して下さい。
5.これで、あなたのVoiSITEの読み上げが開始されます。
次回VoiSITE Browser起動時に直ちにあなたのサイトを読み上げさせたい場合は「初期サイトに設定」と発話してください。
※VoiSITE Browserの詳しい使い方を確認したい場合は「ヘルプ」と発話してください。
VoiSITEの基本
VoiSITEはSCENE(シーン)情報を拡張HTMLタグで記述し、WebサイトにVUI機能を追加します。
SCENE情報は、『○○しますか?』のような1つのユーザーへの問いかけ定義と、問いかけに対してユーザーが『"はい"と答えたら…』のように返答に対するリアクション定義の2つで構成されます。
このようなSCENE情報を複数定義した上で、返答に対するリアクションとして別のSCENEへ切り替えるようにすることで、ユーザーとの会話が続くように定義します。
拡張HTMLタグ一覧
※タグの囲み文字は<>以外に[]や{}や<>とすることも可能(例:[VUI]…[/VUI] または <VUI>… </VUI>)
(Webサービスを利用していてHTMLファイルが直接カスタマイズできない場合などは囲み文字を変えることで対処可能なケースもある)
タグ |
説明 |
<VUI>…</VUI> |
VoiSITE情報記述ブロック このタグで記述されたブロックがVoiSITEブラウザで読み込まれ、HTMLファイル内の任意の場所に記述
例)
<HTML>
<HEAD>…</HEAD>
<VUI>
<INFO>…</INFO>
<SCENE>…</SCENE>
<SCENE>…</SCENE>
<SCENE>…</SCENE>
</VUI>
<BODY>…</BODY>
</HTML>
|
<VUI>
<INFO>…</INFO>
</VUI>
|
VoiSITEの基本情報の記述ブロック
|
<VUI>
<INFO>
<TITLE>…</TITLE>
</INFO>
|
VoiSITEのタイトルを記述
例)<TITLE>日本 V U I 推進会</TITLE>
補足① 英単語を1文字づつトークさせる場合は英字間に半角スペースを加える
例)JAPAN ⇒ 音声トーク「ジャパン」
J A P A N ⇒ 音声トーク「ジェイエーピーエーエヌ」
|
<VUI>
<INFO>
<TITLE>…</TITLE>
<VOICE>…</VOICE>
</INFO>
|
VoiSITEブラウザが読み上げる音声コードを指定
例)<VOICE>V3P11</VOICE>
指定可能な音声コードは以下のいずれか(VOICEタグ未指定時の音声コードはV1)
V1P03、V1P02、V1P01、V1、V1P11、V1P12、V1P13、V1P14、V1P15、
V2P03、V2P02、V2P01、V2、V2P11、V2P12、V2P13、V2P14、V2P15、
V3P03、V3P02、V3P01、V3、V3P11、V3P12、V3P13、V3P14、V3P15、
※音声コードは前半部で音声の種類、後半部でピッチを表している
V1:女性音声①/V2:女性音声②/V3:男性音声
P03~P01:低ピッチ/P11~P15:高ピッチ
|
<VUI>
<INFO>…</INFO>
<SCENE>…</SCENE>
<SCENE>…</SCENE> <SCENE>…</SCENE> </VUI>
|
シーン情報の記述ブロック
<VUI>…</VUI>ブロック内に複数指定可能
|
<VUI>
<INFO>…</INFO>
<SCENE>
<ID>…</ID>
</SCENE>
|
シーンのIDを設定
例)<ID>top</ID>
|
<VUI>
<INFO>…</INFO>
<SCENE>
<ID>…</ID>
<SPEAK>…</SPEAK>
<ASK>…</ASK> <INTENT>
<SPEAK>…</SPEAK>
</INTENT>
</SCENE>
|
音声トーク情報の記述ブロック
例)<SPEAK>
「日本 V U I 推進会」のサイトへようこそ。
私達は、国内での V U I の利用促進を目指すチームです。
{goto id="select"}
</SPEAK>
補足① 英単語を1文字づつトークさせる場合は英字間に半角スペースを加える
例)JAPAN ⇒ 音声トーク「ジャパン」
J A P A N ⇒ 音声トーク「ジェイエーピーエーエヌ」
補足② 音声トークを0.5秒間停止させる場合は空行をブロック内に空行を追加
補足③ このブロック内にはトーク拡張タグを記述可能
|
<VUI>
<INFO>…</INFO>
<SCENE>
<ID>…</ID>
<SPEAK>…</SPEAK>
<ASK>…</ASK>
</SCENE>
|
催促の音声トーク情報の記述ブロック
<SPEAK>ブロックの問合せトークに対して、VoiSITEブラウザ利用者が何も返答しなかった場合に
再度返答を促すためのトーク情報を記述
例)
<SPEAK>
この続きを聞きますか?
</SPEAK> <ASK>
もう一度お聞きします。
この続きを聞きますか?
「はい」、「いいえ」で答えてください。
</ASK>
補足① 英単語を1文字づつトークさせる場合は英字間に半角スペースを加える
例)JAPAN ⇒ 音声トーク「ジャパン」
J A P A N ⇒ 音声トーク「ジェイエーピーエーエヌ」
補足② 音声トークを0.5秒間停止させる場合は空行をブロック内に空行を追加
|
<VUI>
<INFO>…</INFO>
<SCENE>
<ID>…</ID>
<SPEAK>…</SPEAK>
<ASK>…</ASK>
<INTENT>…</INTENT>
<INTENT>…</INTENT> </SCENE>
|
返答受付情報の記述ブロック
<SPEAK>ブロックで問合せに対して利用者の返答として受け付け可能なインテントを設定する
|
<VUI>
<INFO>…</INFO>
<SCENE>
<ID>…</ID>
<SPEAK>…</SPEAK>
<ASK>…</ASK> <INTENT>
<TYPE>…</TYPE>
<SLOT>…</SLOT> <SPEAK>…</SPEAK> </INTENT>
|
受け付ける返答タイプを設定
例)<INTENT> <TYPE>ordinal_number</TYPE>
<SLOT>1</SLOT>
<SPEAK>1番と答えました。</SPEAK>
</INTENT>
<INTENT>
<TYPE>ordinal_number</TYPE>
<SLOT>2</SLOT>
<SPEAK>2番と答えました。</SPEAK> </INTENT>
指定可能な返答タイプは以下のいずれか ordinal:「順番、番号」を表すのタイプ(例:1番目、1つ目など) number:「数値」を表すタイプ(例:1、2、100など) ordinal_number:「順番、番号、数値」を表すタイプ(ordinalとnumberの混合) yes:「肯定」を表すタイプ(例:はい、イエスなど) no:「否定」を表すタイプ(例:いいえ、ノーなど)
|
<VUI> <INFO>…</INFO> <SCENE> <ID>…</ID> <SPEAK>…</SPEAK> <ASK>…</ASK> <INTENT> <TYPE>…</TYPE> <SLOT>…</SLOT> <SPEAK>…</SPEAK> </INTENT>
|
返答として受け付ける値を設定
例)<INTENT> <TYPE>number</TYPE>
<SLOT>1</SLOT> <SPEAK>1ですね。</SPEAK> </INTENT> <INTENT> <TYPE>number</TYPE> <SLOT>2</SLOT> <SPEAK>2ですね。</SPEAK> </INTENT> <INTENT> <TYPE>number</TYPE> <SPEAK>1、2以外ですね。</SPEAK> </INTENT>
<SLOT>は返答タイプ「ordinal」「number」「ordinal_number」の場合に有効 <SLOT>を指定しない場合、任意の回答を受ける
|
トーク拡張タグ一覧
※トーク拡張タグの囲み文字は{}以外に[]を使用すること可能(例:[goto id="…"])
ただし、HTML拡張タグの囲み文字と同じものは使用不可
タグ | 説明 |
{goto id="①"} {goto id="①" respan="…"}
|
①で指定したIDの<SCENE>へ移動(respanはコメント文で記載は任意)
例){goto id="select"}
{goto id="@top"}
①には以下の特殊IDを指定することが可能 @top:<VoiSITE>ブロック内の先頭の<SCENE>に移動 @back:1つ前の<SCENE>に移動 @repeat:同一<SCENE>に移動 |
{goto url="①"} {goto url="①" respan="…"} |
①で指定したURLのVoiSITEへ移動(respanはコメント文で記載は任意)
例){goto url="https://j-vui.link/voisite_config/"} |
{set var="①" value="②"} {set var="①" value="②" respan="…"} |
①で指定した変数に②の計算結果を代入(respanはコメント文で記載は任意)
例){set var="$1″ value="1″} {set var="$2″ value="$1 * 3″ respan="変数$1を3倍した値"} {set var="$3″ value="$$"}
変数は$1、$2、$3…のように「$+数字」で任意に表記する 変数はVoiSITEブラウザ全体で共通のため初期値は不確定 以下の特殊変数も利用可能 $$:利用者が返答した値
例)<INTENT>
<TYPE>number</TYPE>
<SPEAK>
{set var="$1″ value="$$" respan="利用者が返答した値"}
</SPEAK>
</INTENT>
??:0.0から1.0の乱数値
以下の演算子が有効 +:加算 -:減算 *:乗算 /:除算 %:余剰 ():括弧 |
{echo value="①"} {echo value="①" respan="…"} |
変数①の値を発話させる(respanはコメント文で記載は任意)
例){echo value="$$"}に1を足すと{echo value="$$ + 1″}になります |
{if value="①"}…{/if} {if value="①" respan="…"}…{/if} |
①の条件を満たしている場合、{if}ブロック内のトークを発話する (respanはコメント文で記載は任意)
例){if value="1 <= $$ && $$ <= 10″} 1から10の数字です {/if}
以下の判定式が有効 ==:同値 !=:不一致 <:より小さい >:より大きい <=:以下 >=:以上 &&:論理積(~ かつ ~) ||:論理和(~ または ~) |
{while value="①"}…{/while} {while value="①" respan="…"}…{/while} |
①の条件を満たしている間、{while}ブロック内のトークを繰り返す (respanはコメント文で記載は任意)
例){set var="$1″ value="1″} {while value="$1 <= 10″} {echo value="$1″}です。 {set var="$1″ value="$1 + 1″} {/while} |
{break time="①"} {break time="①" respan="…"} |
①で指定したミリ秒間、発話を停止する(respanはコメント文で記載は任意)
例){break time="3000″} |
{voice id="①"}…{/voice} {voice id="①" respan="…"}…{/voice} |
{voice}ブロック内を読み上げる音声コードを①で設定(respanはコメント文で記載は任意)
例){voice id="V2″}この部分の声色と{/voice} {voice id="V3″}この部分の声色は異なります。{/voice}
①で指定可能な音声コードは<VOICE>タグと同じ |
{audio url="①"} {audio url="①" respan="…"} |
①で指定したURLの音源データ(MP3)を再生する(respanはコメント文で記載は任意)
例){audio url="https://xxxx.xxxx.xxxx/xxxxxxx.mp3"}
補足① 1度の発話で再生可能な音源データは最大で5つ 上限数を超えた場合、先に指定された{audio}は無視される 補足② 指定可能なMP3は以下の条件を満たす必要があり、 不正な音源データを指定した場合、VoiSITE読み上げ時に強制エラー停止となる 16000Hz/ビットレート(48kbps)、最大240秒 |
VoiSITE設定
<VUI>
<INFO>
<TITLE>日本 V U I 推進会</TITLE>
<VOICE>V3</VOICE>
</INFO>
<SCENE>
<ID>top</ID>
<SPEAK>
「日本 V U I 推進会」のサイトへようこそ。
私達は、国内での V U I の利用促進を目指すチームです。
{goto id="select"}
</SCENE>
<SCENE>
<ID>select</ID>
<SPEAK>
このチームについて、知りたい内容を番号で指定してください。
1.「日本 V U I 推進会」とは。
2.私達が公開した作品について。
3.私達への問い合わせについて。
4.ボイサイトのご提案。
</SPEAK>
<ASK>
1.「日本 V U I 推進会」とは。
2.私達が公開した作品について。
3.私達への問い合わせについて。
4.ボイサイトのご提案。
</ASK>
<INTENT>
<TYPE>ordinal_number</TYPE>
<SLOT>1</SLOT>
<SPEAK>{goto id='introduce'}</SPEAK>
</INTENT>
<INTENT>
<TYPE>ordinal_number</TYPE>
<SLOT>2</SLOT>
<SPEAK>{goto id='product'}</SPEAK>
</INTENT>
<INTENT>
<TYPE>ordinal_number</TYPE>
<SLOT>3</SLOT>
<SPEAK>{goto id='contact'}</SPEAK>
</INTENT>
<INTENT>
<TYPE>ordinal_number</TYPE>
<SLOT>4</SLOT>
<SPEAK>{goto id='voisite'}</SPEAK>
</INTENT>
</SCENE>
<SCENE>
<ID>introduce</ID>
<SPEAK>
「日本 V U I 推進会」は「国内での、Voice User Interfaceを活性化させよう」を基本理念に持つ、I T技術者集団です。
Voice User Interface。V U Iは、アイフォンのシリや、アンドロイドのグーグルアシスタント、
アマゾンエコーのアレクサなどのように、「声」を使って機械を操作するもののことを言い、
既に広く一般に普及しているものです。
ところが、これだけ媒体が多く普及しているにも関わらず、こと、日本国内においては今一つ利用頻度が増えていないというのが実情です。
そのような現状に憂い、一念発起したのが我々、非 営利団体「日本V U I推進会」です。
私達は『V U Iはオモシロイ』、を合言葉に、日々新しいV U I機能を開発・提供していきます。
{goto id="select"}
</SPEAK>
</SCENE>
<SCENE>
<ID>product</ID>
<SPEAK>
私達が作成、公開した作品をご紹介させていただきます。
作品番号1。アレクサスキル、「川柳の部屋」。
音声操作で川柳を作ることができるアプリです。
作品番号2。アレクサスキル、「やすらぎの部屋」。
育成型の長編ノベル音声アプリです。
作品番号3。アレクサスキル、「サファリのぱぁく」。
Webサイト上に、「声」で動物を呼び出せるアプリです。
作品番号4。アレクサスキル、「ナインカード」。
記憶力と論理的思考力が鍛えられる音声ゲームです。
作品番号5。アレクサスキル、「北斗の災難」。
ミステリー小説風の推理ゲームです。
作品番号6。アレクサスキル、「麻雀バトル、チンイツクエスト」。
難易度の高い麻雀ゲームです。
当団体は、非 営利団体です。公開作品は全て無料で提供しておりますので、ご自由にお試しください。
{goto id="select"}
</SPEAK>
</SCENE>
<SCENE>
<ID>contact</ID>
<SPEAK>
私達に御用のあるかたは、
「ジャパン、ドット、V U I、ドット、o r g、アットマーク、ジーメール、ドットコム」宛てに、
メールでご連絡ください。
ご意見、ご要望、ご感想以外に、当団体への参加希望なども随時受け付けております。
諸々、お気軽にお問い合わせください。
{goto id="select"}
</SPEAK>
</SCENE>
<SCENE>
<ID>voisite</ID>
<SPEAK>
ボイサイトとは、V U I 機能を追加したウェブサイトのことで、今あなたが聞いているこのサイトもボイサイトです。
私達が提供する拡張 H T M L を使用すれば、既存のウェブサイトを簡単にボイサイトにすることができます。
さらにボイサイトには、簡単なプログラムコードを組み込むことができ、動きのある応答をさせることも可能です。
プログラムコードを組み込んだボイサイトを体験してみますか?
</SPEAK>
</ASK>
プログラムコードを組み込んだボイサイトを体験してみますか?
</ASK>
<INTENT>
<TYPE>yes</TYPE>
<SPEAK>{goto url='https://j-vui.link/voisite_config_2/'}</SPEAK>
</INTENT>
<INTENT>
<TYPE>no</TYPE>
<SPEAK>{goto id='top'}</SPEAK>
</INTENT>
</SCENE>
</VUI>
VoiSITE設定(プログラム)
<VUI>
<INFO>
<TITLE>数字をニ進数にするプログラム</TITLE>
</INFO>
<SCENE>
<ID>top</ID>
<SPEAK>
数字をニ進数にするプログラムです。
一から百までの数字を言ってみてください。
</SPEAK>
<INTENT>
<TYPE>ordinal_number</TYPE>
<SPEAK>
{if value="1 <= $$ && $$ <= 100"}
{set var="$1" value="$$" remark="変換する値"}
{goto id="program"}
{/if}
数字は、一から百の間で言ってください。
</SPEAK>
</INTENT>
</SCENE>
<SCENE>
<ID>program</ID>
<SPEAK>
「{echo value="$1"}」をニ進数に変換すると
{set var="$2" value="64" remark="計算用の比較値"}
{while value="$1 < $2" remark="先頭の桁が1になるよう比較値を減らす"}
{set var="$2" value="$2 / 2"}
{/while}
{while value="$2 >= 1" remark="先頭桁から順番に求める"}
{if value="$1 < $2"}
ゼロ、
{/if}
{if value="$1 >= $2"}
イチ、
{set var="$1" value="$1 - $2"}
{/if}
{set var="$2" value="$2 / 2"}
{/while}
になります。
{goto id="@top"}
</SPEAK>
</SCENE>
</VUI>
問い合わせ
当団体に御用の方は、「japan.vui.org@gmail.com」宛にメールにてご連絡ください。
ご意見、ご要望、ご感想以外に当団体への参加希望なども随時受け付けております。
また『こんなVUIアプリを作ってみたいので協力してもらえないか』などのご相談もお受け致します。
諸々お気軽にお問合せください。