教育系アプリ向け日本語オフラインTTS:Mei音声でAndroid端末間の読み上げを統一

Translate this article

Japanese TTS offline Android Codename One日本語学習アプリや音声付き教材を作っていると、Text-to-Speech(TTS)は「入れれば終わり」ではありません。端末ごとに声質や発音、利用可否が変わると、学習体験そのものが揺らぎます。

そこで私は、Codename One 向けの Android 専用 CN1Libとして、日本語オフラインTTSを実装し、GitHub で公開しました。

Repository: https://github.com/jsfan3/nihonjindes-cn1lib-tts/


Codename One は「惚れ込んでいる」開発基盤

この CN1Lib は Android 専用です。クロスプラットフォームを狙っているわけではありません。それでも私は Codename One を選びました。理由は明快で、開発者の生活を大幅に楽にしてくれるからです。

  • UI・イベント処理・ネットワーク・ストレージなどが一貫した設計で、アプリの土台が安定する
  • ネイティブ要素を必要な箇所だけに閉じ込められる(複雑さを局所化できる)
  • そして何より CN1Lib という形で「難しい実装を、使いやすい API に落とし込める」

CN1Lib は、公開 API だけでは扱いづらい/実装が重い仕組みを、アプリ側からはシンプルに呼べるように整えるための器です。ただし、作る側にとっては簡単ではありません。今回もまさにそこが勝負でした。


何を実現したのか:Open JTalk + Mei(Normal)による日本語オフライン音声合成

この CN1Lib は Open JTalk をベースに、Mei(Normal)音声で日本語テキストをオフラインで読み上げできるようにします。Android 上で完結し、通信や端末の TTS 設定に依存しません。

特長(開発者目線):

  • 端末間で音声がブレない(同じエンジン・同じ音声を内包するため)
  • オフライン動作(ネットワーク・追加ダウンロード前提の構成を避けたい用途に適する)
  • 軽量で組み込みやすい(アプリに「使うための最小限」を提供することを意識)
  • 読み上げ速度やピッチなど、教材・学習用途で重要なパラメータを扱える設計

「端末に入っている TTS」に頼らないメリット

システム TTS 依存は手軽に見えますが、教育系・コンテンツ系では典型的に問題になります。

  • 日本語音声が端末に存在しない/無効化されている
  • メーカー・OS・音声パックで品質が変わる(同じ文章でも印象が変わる)
  • OS 更新で挙動や声が変わる(教材の再現性が崩れる)
  • フォールバックで意図しない音声に切り替わるなど、体験の統一が難しい

この CN1Lib を使うと、アプリ側が提供する音声体験を「端末の偶然」に預けずに済みます。学習アプリにとって、これはそのまま品質と信頼性に直結します。


公開について(CC0 を選んだ理由)

この CN1Lib は、私自身の時間と労力をかなり投入して作りました。だからこそ、同じ課題にぶつかる次の開発者の参入障壁をできる限り下げたい。その意図で、私が書いた部分は CC0(実質的にパブリックドメイン相当)として公開しています。

「まず使えるものが欲しい」「まず動くものをベースに改良したい」——そういう場面で、手続きや制約が障害にならないようにしました。


まずはここから

詳しい導入手順、動作確認用の APK、サンプルはすべてリポジトリにまとめています。
日本語オフライン読み上げを Codename One(Android)で必要としている方は、ぜひチェックしてください。

ところで、生成AIが新しいコードのほぼすべてを作り出すようになった今、著作権について議論するのは意味がありません。AIは人間の知識をすべてパブリックドメインであるかのように扱い、著作権に関する法律をまったく気にせず誰にも報酬を支払いません。少数の多国籍企業がすべての人の知的財産を盗んで富を築いています。それなら著作権を放棄したほうがましでしょう。しかしこの議論は遠回りになってしまうのでこれ以上は触れません。

役に立ったら Star を付けてもらえると、継続的な改善の励みになります。

CC0 (Francesco Galgani's art, 8 gennaio 2026)
(2026年1月8日、私のギャラリーへ)

La pace come atto spirituale in tempi di guerra

Translate this articleSpeak this article

Credo che al di là delle proprie piccole e grandi vicende personali, ciò che conta veramente è mantenere una solida pace interiore nonostante la guerra e il collasso economico e morale delle nostre società.

Il Re Demone ha il monopolio dell'informazione ufficiale e alternativa, social e IA compresi, ed è ovunque intorno a noi. Il Re Demone fa il possibile per richiamare i nostri demoni interiori.

Il Budda invece rimane nascosto dentro di noi finché non ci impegniamo attivamente per richiamarlo:

«Quando veneriamo il Myoho-renge-kyo che è nella nostra vita come oggetto di culto, la natura di Budda che è in noi viene richiamata dalla nostra recitazione di Nam-myoho-renge-kyo e si manifesta. Questo si intende per “Budda”. Per fare un esempio, quando un uccello in gabbia canta, gli uccelli che volano liberi nel cielo sono richiamati e si radunano intorno a lui. E quando gli uccelli che volano nel cielo si radunano, l’uccello in gabbia cerca di uscire fuori. Così, quando con la bocca recitiamo la mistica Legge, la nostra natura di Budda viene richiamata e immancabilmente emergerà».

tratto dal Gosho: "Come coloro che inizialmente aspirano alla via possono conseguire la Buddità attraverso il Sutra del Loto"

La pace come atto spirituale in tempi di guerra (Francesco Galgani's art, 5 gennaio 2026)
(5 gennaio 2026, vai alla mia galleria)

Cuore, cultura, coraggio: la grammatica della pace

Translate this articleSpeak this article

Mentre questa mattinata scorre, gli Stati Uniti hanno bombardato Caracas, capitale del Venezuela. Il Capodanno invece è stato accompagnato da ulteriori morti nelle attuali zone di guerra.

Tuttavia, dobbiamo rimanere positivi. La pace inizia dal proprio cuore, un cuore che desidera essere portatore di pace, cioè creare ponti per capire e unire. Tutto il resto è solo falsità.

La pace ci richiede di andare verso l'altro, di provare a capire la sua lingua e la sua cultura. Imporre a tutti un'unica lingua è solo violenza. Persino Gandhi, che parlava inglese alla perfezione, diceva agli indiani che dovevano parlare hindi, e non inglese, se veramente volevano essere se stessi. Oggi noi abbiamo strumenti tecnologici che, pur con tutti i loro difetti e aspetti negativi, comunque ci permettono di comunicare con chiunque. Cerchiamo sempre di andare incontro all'altro e di fare noi per primi uno sforzo per comprendere.

Per queste ragioni, e visto anche che nel blog ho scritto finora in molte lingue, nella pagina dei contatti ho reso esplicita la mia disponibilità: "Feel free to write to me in Italian, English or your native language".

Stati Uniti e Gran Bretagna credono che la loro lingua sia l'unica che conti e che meriti di essere appresa. E infatti creano guerre ovunque. Per questo l'egemonia linguistica e culturale è un esempio da non seguire. A cosa ci serve l'IA, che conosce meglio di qualsiasi umano la maggioranza delle lingue umane, se poi non la usiamo per ciò per cui sarebbe veramente utile?

Ovviamente gli strumenti tecnologici, da sé, non bastano. Per andare incontro verso l'altro, servono impegno, dedizione e anche il coraggio di poter sbagliare.

(3 gennaio 2026)

敵など存在しない。あるのは、傲慢と無知だけだ。

Translate this article

戦争に反対だ。
戦争は、大量殺戮にすぎない。
戦争に利益など一切ない。
戦争がもたらすのは、苦しみと屈辱だけだ。
戦争を愛するのは、心も知性も持たない者だけである。

日本国憲法第9条:

「日本国民は、正義と秩序を基調とする国際平和を誠実に希求し、国権の発動たる戦争と、武力による威嚇又は武力の行使は、国際紛争を解決する手段としては、永久にこれを放棄する [...]」

イタリア共和国憲法第11条:

「イタリアは、他国民の自由に対する侵害の手段として、また国際紛争を解決する手段としての戦争を放棄する。[...]」

長崎平和公園の平和祈念像を見てみよう:

  • 右手を天に向けて掲げている:核兵器の脅威を指し示し、私たちに警鐘を鳴らしている。
  • 左腕を水平に伸ばしている:平和(そして恒久平和への希求)を象徴している。
  • 目を閉じた穏やかな表情:犠牲者の魂への祈り/追悼を表している。
  • 脚の構え:瞑想と、立ち上がって行動し人類を救い助けるための備えとを結び合わせている。

ヘイワコウエン・ヘイワキネンゾウ・ヘイワノイズミ (Francesco Galgani's art, 2026年1月2日)
(2026年1月2日、ヘイワコウエン・ヘイワキネンゾウ・ヘイワノイズミ私のギャラリーへ)

Pages

Subscribe to Informatica Libera - Francesco Galgani's Blog RSS