原因は音声データの未インストール
TextToSpeech の speak で音声読み上げに失敗する原因はいろいろあると思いますが、自分がハマったのは、端末に「音声データ」をインストールしていなかったために、ネットワークを無効(オフライン)にしてしまうと音声データがダウンロードできず、音声の読み上げがエラーではなく「無言」になってしまうというトラブル。
てっきり端末に日本語の「音声データ」くらいはインストールされているとばかり思っていたので、この初歩的なミスに何時間もハマってしまった。
もし、アプリを作っていてオフラインで音声読み上げができない場合は、コードのバグはもちろんですが「音声データ」がインストールされているのかを一度確認した方が良いでしょうね。
設定・音声データのインストール方法
1.設定から「システム」を選択。
2.「言語と入力」を選択。
3.一番下の「詳細設定」を選択。
4.一番下の「テキスト読み上げの出力」を選択。
5.「優先するエンジン」の右の「ギヤマーク」を選択。
6.一番上の「音声データをインストール」を選択。
7.言語の一覧から必要なものを選択。
※テスト端末には、日本語(日本)が既にインストールされているので、サンプルとして「広東語(香港)」を選択しています。
8.右のダウンロードマークを選択。
9.ダウンロードとインストールが終わると「ダウンロードマーク」が「ゴミ箱マーク」に変わる。不要になった場合はこの「ゴミ箱マーク」を選択すれば音声言語データは削除されます。
以上です。
何度確認してもコードは間違っていないのに音声読み上げが実行されない・・・という場合は、一度端末にインストールされている「音声データ」を確認してみると良いかもしれません。
END