自分のMacで、Speechifyのように「読みながら聴く」体験がほしいと思いました。声が読み上げ、進むにつれて単語がハイライトされていく、あの体験です。でも、そのためにまた新しいサブスクリプションを払うのは嫌でした。別のプロジェクトの作業を通じて、Kokoroという小さなオープンソースのニューラルモデルを使えば、本当に良い音質の音声合成をローカルで動かせると最近知ったところでした。だから、それを核にして自分用のリーダーを作りました。
ほとんどの読み上げ製品は、あなたの本が誰かのクラウドにあること、そして聴くにはサブスクが要ることを前提にしています。Aoedeは逆の発想を取ります。書類を取り込み、音声をローカルで合成し、同期した単語ハイライトで追いかけ、ライブラリは自分のデバイスに置いたまま。アカウントも、サブスクも、クラウドもありません。
Accelerandoを読み上げるAoede。EPUBの構造を保ったまま、単語ハイライトを同期させ、再生コントロールが浮かんでいます。
名前がそのまま狙いです。Aoede(アオイデー)は、声と歌のミューズ。有名人に読んでもらう必要はありません。自分のものだと言える、シンプルで音の良い声がいくつかあれば十分です。内部ではAppleの組み込み音声と、MLX経由でローカルに動くKokoroの両方を使っています。目指すのは何百もの声ではなく、オフラインで動く、本当に良い少数の声です。いつか本当に使いたくなったときのために、ElevenLabsのようなクラウド版の余地も残してあります。
「聴くための道具」として始まったものが、「読むための道具」になってきました。Aoedeはいまでは英語だけでなく日本語にも対応し、ふりがなと読みの補正も入っています。そしてページを読み進める方法も一つではありません。声で読み上げる方法もあれば、音をまったく出さずにハイライトだけを自分のペースで進めるサイレントなReading Pacerもあります。出発点は声でしたが、いま育っているのは読書体験そのものです。
動くのは新しめのApple silicon、macOS 26、そしていまはiOS 26です。Macアプリと、iPhone・iPadとで、ひとつのコアを共有しています。いまのところ個人プロジェクトで、関心があれば少人数にTestFlightで配るか、まだ決めかねています。
下のアップデートが制作ログです。エンドツーエンドで配線した土台、KokoroのランタイムをCoreMLからMLXへ移したこと、ふりがなと読みの補正つきで日本語を読めるようにしたこと、コア全体をパッケージに抽出してiOSで動くようにしたこと、数十ギガバイトのまま居座っていたメモリキャッシュに上限を付けたこと、そして「これは声ではなく読書アプリになりつつある」と気づかせてくれたサイレントな読書ペーサー。