最初は「Spotifyをラジオみたいにできないかな」という思いつきだった
最近はAIを使った音楽サービスが本当に増えました。AIがプレイリストを作ってくれたり、好みに合わせて曲を提案してくれたり、いわゆる「あなたにおすすめ」の精度もどんどん上がっています。
それはそれで便利なのですが、私が欲しかったものは少し違いました。ある日ふと思ったのは、「Spotifyをラジオみたいにできないかな?」ということでした。
曲が終わるとDJが少しだけ話し、次の曲を紹介する。自分で毎回プレイリストを選ぶのではなく、いくつか用意された架空のラジオ局の中から「今日はこの局を流しておこう」と選ぶだけで、あとはその日の番組が勝手に進んでいく。そんなものがあったら面白そうだな、という軽い思いつきから、このローカルAIラジオの構想は始まりました。
仕事中に流れていたJ-WAVEの記憶
昔勤めていた職場では、就業中ずっとFMラジオが流れていました。私はMacに向かってデザイン作業をしながら、職場の隅に置かれたラジカセから流れてくる音楽やDJの声を、毎日のように何気なく聞いていました。流れていたのは、たしかJ-WAVEだったと思います。
もちろん仕事中なので、ずっと真剣に聞いているわけではありません。むしろ作業の背景にある音として流れている時間の方が長かったと思います。それでも、ふと耳に入ってきた曲が妙に気になったり、DJの一言で知らないアーティストを知ったり、「この曲いいな」と思ってあとで調べたりすることがありました。
今のSpotifyはとても便利です。好きな曲を保存できるし、自分でプレイリストも作れるし、アルゴリズムが好みに近い曲をすすめてくれます。ただ、便利になればなるほど、音楽との出会い方が少し狭くなる感覚もあります。自分が好きな曲、自分が聴きそうな曲、自分が過去に選んだ曲に近いものが中心になり、偶然流れてきた知らない曲に驚くような体験は、少しずつ減っていく気がします。
AIプレイリストではなく、AIラジオ局を作りたい
少し考えていて気付いたことですが、Spotifyにはもう自分が好きな曲を集めたプレイリストがあります。そこにAIがもうひとつプレイリストを作るだけでは、あまり面白くありません。私が欲しかったのは、曲やプレイリストを選ぶ煩わしさをなくし、なんとなく仕事中に流れている曲の中で、知らない名曲や新しいアーティストと出会う可能性でした。
つまり作りたかったのは、AIプレイリストではなく、AIラジオ局だったのです。
最初は単純に、Spotify APIで曲を再生し、ローカルAIが曲紹介をしてくれれば面白いだろう、くらいに考えていました。しかし壁打ちをしていくうちに、ただ曲を並べるだけではラジオにはならないことに気付きました。ラジオらしさを作るには、曲順だけではなく、局ごとの個性、番組の空気、DJの喋り方、曲と曲の間の余白が必要です。
この時点で見えてきた方向性
- AIに好きな曲だけを並べさせるのではなく、ステーションごとの番組を作る
- 曲紹介やDJトークを入れて、ラジオ番組として聴けるようにする
- 知らない曲や古い名曲、新曲との偶然の出会いを残す
- Mac上で動くローカルアプリとして、Spotifyの再生とAI処理をまとめる
架空のラジオ局をいくつも作る
そこで考えたのが、いくつかの仮想ラジオ局を作ることでした。たとえば、日本の新しめのヒットや話題曲を流す「Tokyo Hit Radar」、深夜作業に合うジャズやネオソウルを流す「Midnight Jazz Lounge」、アンビエントやテクノ寄りの音を宇宙っぽい世界観で流す「Ambient Cosmos」、昔のヒップホップやクラシックな名曲を掘る「Old School HipHop FM」のように、それぞれの局に明確な方向性を持たせます。
この考え方にすると、AIが学習する対象も変わります。普通の音楽サービスは、ユーザーの好みを学習して「あなたが好きそうな曲」を出そうとします。でもそれをやりすぎると、結局いつもの曲、いつものジャンル、いつもの空気に寄っていきます。今回作りたいものは、それとは少し違います。
ローカルAIラジオで育てたいのは、ユーザーの好みそのものではなく、各ラジオ局の個性です。この局なら新曲を多めに混ぜる、この局なら定番曲と掘り出し物を半々にする、この局なら少し冒険枠を入れる、というように、ステーションごとの編成思想を育てていく方がラジオらしいと思いました。
ステーションごとに「出会い方」を設計する
たとえば「Tokyo Hit Radar」なら、3ヶ月以内の新曲、1年以内の話題曲、少し前のヒット、まだ聴いたことのない周辺ジャンルをバランスよく混ぜる。「Old School HipHop FM」なら、定番クラシックだけでなく、当時の周辺ジャンルや、今の音楽に影響を与えた曲も入れる。そうすることで、ただのシャッフルではなく、「この局ならこういう曲を流しそうだ」という雰囲気が生まれます。
ここで重要なのは、AIに「自分が好きそうな曲だけ」を選ばせないことです。好みの曲だけを聴きたいなら、Spotifyのプレイリストを開けばいい。ローカルAIラジオでやりたいのは、知らなかった曲に出会うこと、古い曲を今の気分で聴き直すこと、自分では探さなかったジャンルに少しだけ連れていかれることです。
ステーションの例
- Tokyo Hit Radar:日本の新曲、話題曲、少し前のヒットを混ぜる発見型ステーション。
- Midnight Jazz Lounge:夜作業に合うジャズ、ネオソウル、ローファイを中心にした静かなステーション。
- Ambient Cosmos:アンビエント、テクノ、ハウスを宇宙的な世界観でつなぐステーション。
- Old School HipHop FM:クラシックなヒップホップと、その周辺にある名曲を掘るステーション。
AI DJには勢いがほしい。でも嘘は困る
DJトークについても、最初はローカルAIに曲紹介を喋らせればいいと思っていました。しかしここにも問題があります。AIは放っておくと、もっともらしい嘘をつきます。アーティストの出身地、結成年、どこのシーンで盛り上がったのか、どのメディアで評価されたのか。こういう情報を雰囲気で作られてしまうと、ラジオDJとしてはかなり危険です。
そこで、DJトークには「根拠レベル」を持たせることにしました。Spotify APIから取れる曲名、アーティスト名、アルバム名、リリース日などは基本情報として扱い、アーティストの出身地やシーン情報、ニュース性のある内容は、Web検索や外部情報源から取得したものだけを使う。AIはその情報を元に、事実を勝手に増やさず、番組の空気に合う言葉へ変換する役割にします。
たとえば「カナダ・バンクーバーのクラブカルチャーから突如現れたインディーパンクトリオ」と紹介するなら、その根拠になる情報が必要です。根拠がない場合は、無理に具体的な経歴を語らず、「ざらっとしたギターと勢いのあるボーカルが、今夜の流れにちょうどいい一曲です」といった紹介にとどめる。この線引きをしておくことで、AI DJらしい勢いを残しながら、嘘っぽさを減らせます。
台本生成AIと音声合成AIを分ける
また、台本を作るAIと音声を作るAIは分けることにしました。DJ台本はOpenRouter経由でGrokのようなクラウドモデルを使ってもよいし、ローカルAIで生成してもよい。一方で音声は、Mac上で動くAivisSpeech EngineやIrodori-TTSのようなローカルTTSを使う。これなら、台本にはクラウドAIの表現力を使いつつ、音声生成のコストは抑えられます。
このあたりは、以前から作っているMem BuddyのAIプロバイダー設計も参考にできます。特定のAIモデルに固定せず、ローカルAI、OpenRouter、TTSエンジンを差し替えられるようにしておけば、将来モデルが変わっても対応しやすくなります。クラウドAIは突然使えなくなったり、価格が変わったり、モデル名が変わったりすることがあるので、最初から差し替え可能な設計にしておくことはかなり重要です。
ラジオらしさを守るために、早送りはしない
ラジオらしさを出すために、操作にも制限を入れることにしました。Spotifyは本来、好きな曲を好きなタイミングで再生できるサービスですが、このアプリではあえて早送りや巻き戻しをなくします。基本操作は、再生、一時停止、停止、最初から再生だけ。次の曲へ飛ばすことも、任意の曲を選ぶこともできない方が、ラジオとしての偶然性が残ります。
その代わり、気に入った日の番組はSpotifyのプレイリストとして保存できるようにします。今日の「Tokyo Hit Radar」がすごく良かったら、その日の放送をそのままSpotifyプレイリストとして残せる。普段はラジオのように流れていき、気に入った回だけ後から自分のライブラリに保存する。この距離感がちょうど良いと思いました。
7日間だけ残るバックナンバー
さらに、各ステーションには7日間だけバックナンバーを持たせる構想も出てきました。毎日のプレイリスト、DJ台詞、生成した音声をローカルに保存しておき、過去7日間だけ聴き返せるようにする。8日以上前の番組は自動的に消えるけれど、本当に気に入った回はSpotifyプレイリストとして残せる。これもラジオらしい仕組みです。
この仕組みなら、ただのプレイリスト生成アプリではなく、その日その日の放送を持つ小さなラジオ局に近づきます。昨日の放送、3日前の放送、1週間前の放送を聴き返せるけれど、ずっと残るわけではない。気に入ったものだけをSpotifyに保存する。こういう少し不自由な仕組みも、アプリの世界観としては悪くないと思いました。
Macの中に小さなラジオ局を作る感覚
こうして考えていくと、最初は「SpotifyでAIが曲紹介してくれたら面白そう」という小さな思いつきだったものが、少しずつ「自分専用のAIラジオ局を作る」という構想に変わっていきました。Spotifyを音源として使い、Macアプリが番組を編成し、AIがDJ台本を作り、ローカルTTSが音声化し、毎日違う放送を流す。これは単なる音楽プレイヤーではなく、Macの中に小さなラジオ局を作るような感覚です。
第1回では、ローカルAIラジオの最初のアイデアから、「プレイリストではなくラジオ局を作る」という考えにたどり着くまでを書きました。次回は、各ステーションの設計、AI DJの作り方、根拠のある曲紹介をどう作るか、ローカルAIとクラウドAIをどう役割分担するかについて、もう少し具体的に書いていきます。
よくある質問
ローカルAIラジオとは何ですか?
Spotifyを音源として使い、Mac上のアプリが番組編成、DJ台本生成、TTS音声化を行う、自分専用のAIラジオ局のような仕組みです。
Spotifyの音源をローカルに保存する仕組みですか?
いいえ。Spotifyの音源そのものは保存せず、Spotify APIで再生を制御し、DJトークや番組構成だけをローカル側で管理する想定です。
なぜAIプレイリストではなくラジオ局を作るのですか?
自分の好みに寄せすぎたプレイリストではなく、仕事中に流れているFMラジオのように、知らない曲や思いがけない名曲と出会う余地を残したかったからです。