さようならAndroid JaTTS。ありがとうAndroid JaTTS。

SmartTraining Ver.8.0.12からAndroid JaTTSの対応をやめました。
バージョンアップした人はいきなりN2TTSインストールを求められて「なんじゃこりゃ、元に戻せやゴルァ!」みたいに言わないかと若干心配ではありますが、一応、長い間利用させていただいたAndroid JaTTSへの感謝の意味を込めて、元々の導入の経緯と対応をやめた理由をメモっときます。

ここで言うTTSとはText to Speechのことです。文字列を音声化する機能のことです。

導入の経緯

SmartTrainingをリリースした当時、Androidのバージョンは1.5から1.6に上がったあたりで、ようやくOSがTTSをサポートし始めたころでした。今と違って日本語をサポートしたTTSエンジンは世の中に存在せず、日本語で音声をだそうと思ったら別途独自の仕組みを構築する他手はありませんでした。
そんな時見つけたのがAndroid JaTTSです。小さなライブラリをインポートするだけで端末に日本語を喋らせることができたのは、当時Android初心者だった自分としては結構衝撃的でした。仕組みとしては文字列を入力としてサーバに送信し、サーバ側で音声合成した結果の音声ファイルをダウンロード、再生という形をとっています。サーバ側はGalatea talkという多数の大学、研究機関が関わった由緒正しいプロジェクトを源流にしています。当時、音声合成エンジンとしてはいくつかありましたが、無料で、面倒な設定不要で使えたという理由で選択しました。

N2TTSの出現

その後、KDDI研究所さんがN2TTSというAndroid標準のTTSに準拠した無料の日本語音声合成エンジンをリリースしました。これは現在でも日本語TTSとして最も有名なものとなっています。

Android JaTTSを利用する上での課題


バッテリー消費が大きい

音声合成をするたびに「リクエスト送信→合成された音声データダウンロード」という手順を踏むのでどうしても通信によるバッテリー消費が避けられません。

サービスの停止

サーバを運営されている方のほうでどれくらい運営コストがかかっているのかはわかりませんが、24時間365日サービスが提供されているわけではありません。時々「音声通知がされない」といった問い合わせをいただきます。こちらで試してみても確かに音声通知が発生しないことがあり、1〜2日経ったあとで試してみると問題なく利用できました。Google Playのコメントでも時々音声が出ないというエントリを見かけましたので、たぶん、サービスが停止していたのではないかと思います。

今後

日本語環境ではN2TTSを推奨の日本語TTSとしてインストールされていない場合はインストールするようにガイドします。音声通知を利用しない場合はインストール不要です。N2TTSを利用することで上記課題はいずれも改善します。ただし、N2TTSをインストールするためのストレージを消費(16MBほど)します。(ストレージの少ない端末にとっては無視できないサイズであることは理解していますが)

最後に

Android JaTTSを提供してくださっている方には感謝しています。本当にありがとうございました。



コメント

このブログの人気の投稿

Execノードを使う

SendGridのX-SMTPAPIヘッダの使い方(Section Tags、Substitution Tags編)

Joinノードを使う(その4)