hisaitamiのブログ

とあるプログラマーの日常

HoloLensアプリ開発(20日目)TextToSpeechManager

テキストを音声に変換したり、音声をテキストに変換する方法を探していたら、HoloToolkit-Testsの中にTextToSpeechManagerというシーンが含まれていることに気がついた。

まず、テキストを音声に変換する方法は、TextToSpeechManagerクラスのSpeakText()メソッドに文字列を渡すだけのようだ。具体的にはTextToSpeechManagerTest.csの41行目からに書かれているとおり。

// If we have a text to speech manager on the target object, say something.
// This voice will appear to emanate from the object.
if (tts != null && !tts.IsSpeaking())
{
    // Get the name
    var voiceName = Enum.GetName(typeof(TextToSpeechVoice), tts.Voice);

    // Create message
    var msg = string.Format("This is the {0} voice. It should sound like it's coming from the object you clicked. Feel free to walk around and listen from different angles.", voiceName);

    // Speak message
    tts.SpeakText(msg);
}

また、このTextToSpeechManagerシーンでは「What time is it?」と話しかけると時刻を音声で読み上げてくれるとあったが、うまく反応してくれなかった。最初は発音が悪いのかなと何度も繰り返し挑戦してみたが心が折れそうになったので下のように調整した。

f:id:hisaitami:20170701100914p:plain

Hierarchyウィンドウから Managers > Speech を選択し、Inspectorの「Keyword Manager (Script)」のプロパティを変更する。Keywordに「What time is it」と入力して、ResponseにTextToSpeechManagerTest.SpeakTimeをセットした。

これで、テキストを音声に変換する方法と、登録したキーワードにアクションを紐付ける方法は分かったけど、音声をテキストに変換するのはどうやろうのだろう。

引き続き調べてみることにする。