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