この記事は Unity Assets Advent Calendar 2015 2日目の記事になります。
Android Speech TTS
https://www.assetstore.unity3d.com/jp/#!/content/45168
AndroidのTTS、音声合成システムを使い、喋った言葉がテキストとして入力できる音声入力と、テキストを喋らせることができるテキスト読み上げをサクッと実現するアセットです。
※Android Ultimate Pluginから「Speech To Text」、「Text To Speech」機能を切り出したパッケージ。
開発環境
- Unity 5.2.1p2
対応端末
- Android(TTS標準搭載のもの
※注意
PCやiOSには対応してません。また、PCでの開発中はテストドライバのスクリプトの作成を推奨。
機能一覧
1. Speech To Text
喋った音声をテキスト化
2. Speech to text events
声→テキストでの、喋りはじめ、終わりなどのコールバックイベント
2. Text To Speech
テキストから音声合成
3. TTS Set Locale ex. US,UK,Japanese
使用する言語の指定。US,UK,Japaneseと謳っていますが一通りそろってます。
4. Text To Speech Set Pitch
音声合成で再生する音声のピッチ。声の高さ、低さ。
5. Text To Speech Set Speech Rate
音声のスピード
6. Text To Speech Events OnStartSpeech,OnDoneSpeech and OnError
テキスト→音声合成での開始、終了、エラーのイベント
7. TTS get available locale on device
Android端末のロケーション設定取得。取得結果を「3. TTS Set Locale ex. US,UK,Japanese」で設定してあげればOK
使い方
音声入力
前提→Gear VRアプリ開発の下ごしらえ、OculusUtilities_SDKExamples_0_1_3_0_beta.zip
を導入済み
最新の情報はアセットのページから、また詳細な説明についてはこちらの公式のチュートリアルを参照のこと。(この記事では「短時間でサクッと使うこと」に重点を置いています。)
>> Android Ultimate Plugin tutorial part 5 – Speech to text | Gigadrill Games http://www.gigadrillgames.com/2015/07/16/android-ultimate-plugin-tutorial-part-5-speech-to-text/
手っ取り早く動作確認
/SpeechTTS/Scenes/Demo
をAndroid端末にBuild And Run
で転送して試す。
また、自分の開発中のシーンへ導入する方法としては次の通り。
Demoのスクリプトを流用して動かす
SpeechRecognizerDemo.cs
をシーン内の適当なゲームオブジェクトにくっつける。(ここで適当にSpeechRecognizerDemo.cs
をリネームして自分のものとして使う。)- 音声入力の開始のトリガーを考える
- スクリプトからの場合は、
SpeechRecognizerDemo.cs
をGetComponent。
speechRecognizerDemo.StartListening()を
呼べば音声入力待ちの状態になる。 - uGUI等のInspectorで直接イベントをノンプログラミングで呼べるもので、
OnClick
イベントなどのトリガーで音声入力を開始する方法も同様にSpeechRecognizerDemo.StartListening()
を指定すればOK。
- スクリプトからの場合は、
- 結果のテキストは
SpeechRecognizerDemo.cs
のonResults
の中身で取り出せる。
ChatのTextLabelに埋め込んでもいいし、ネットワークで投げてもいい。