こんにちは。1月31日金曜日の夜の9時半、間違えました、夜の7時半、ただいまリッスンスタジオにおります。
今日も朝の散歩ならぬ夜の仕事場です。 今日はですね、来週のおこもりっすん2025、
このリッスンスタジオで行われるイベントのリハーサルという感じで、ちょっと本番のセッティングをして機材をつなげてみて、
映像の収録とか、マイクの設置とか、それをyoutubeにテスト配信してみたり、さらに同時に音声収録をするということで、
一通りのね、ちょっと本番想定の機材を全部つなげた状態で、今やってます。 僕はたった一人、誰もいないオフィスに残っておりまして、誰もいない部屋で一人、
ちょっとリハーサル的な感じでこたつに入りながら、 一人で黙々と喋っております。
変な、変な光景です。 youtube live も流れているんで、限定公開のURLでは、
僕のこたつで喋っている様子が 流れていて、手元でそれを見ながら、ちょっと絵を確認しながら喋っていますが、
なかなかシュールです。 はい、一人で、
一人でこのリハーサルしながら喋っているんですけど、 まあ中身のない話をしててもアレなんで、一応ね、ちょっと朝の散歩を
せっかくなんで撮ってみようということで、 撮ってみています。
今週はもう今日で金曜日なので、一応ね、 1週間が
終わりますが、 いやーちょっとですねー
今週、 もうずーっとね、ああ、今、見てるというコメントが入りました。
ちょっとね、あの身内でリッスンチームのメンバーに ライブ配信のテストしてますってリンクを送ったんですが、
なんと見てくれているそうで、ありがとうございます。
はい、ということで、一応リスナー、リスナーというか視聴者もいるということで、
まあちょっとYouTubeライバー、YouTuber、 YouTubeのね、ライバーさんみたいな気持ちになっていますけれども、
はい、まあ今週一応これで一区切りなんですが、 いやーなかなかね、あのー
ずーっとね、この1月はリッスンのインフラ周りを強化していましたっていうことで、 かなり根を詰めて、なんか
技術的な取り組みを黙々とやっていて、まあちょうどなんか、 そうですね、あんまりこう外部の方と
お会いしたりとか、 なんか賑やかなイベントもなかったんで集中しやすかったっていうのもあって、
本当に黙々とね、作業をしていて、 やっとなんかちょっと一区切り、あの気になっていたことをもう少し高速化しようとか、
回復しようとか、いろいろ気になっていたことがあったんですけど、 なんか順番に1個ずつやったらね、
そうしたらついでにあれもやってみようかとか、 さらにこれもやってみようかってなってきて、
洗いざらいっていうまではいかないけど、 まあひとまず当面、ちょっと今後本当リッスンが大きくなっていくときに、
まあこのままだとちょっと重すぎる、重くなりすぎるだろうなとか、 まあコストがかかりすぎるだろうなとか、
ちょっと心配だなっていうようなところを、
かなり
根本的にね、ちょっと仕組みも変えるみたいな感じで順番にやっていて、 やっとちょっとまあ一区切りかなという感じがしています。
で、 まあ一区切りっていうのもあるんですけど、
なんかね、今、今日ちょっとオフィスでね、みんなと喋ってて、
なんか宇宙船に乗ってるみたいな1ヶ月でしたっていう話をしてて、 なんかね、宇宙船のコックピットに乗って、
どんどんなんかこう、見知らぬ宇宙に向かって飛んでいるみたいなね、 なんかちょっとそういう錯覚に襲われるような1ヶ月で、
で、それは何かというと、1つはね、寒いんで、 毛布にくるまってというか、腰から下、足がね、冷えると寒いんで、
結構毛布をちょっと足に巻いたりして座ってたんで、 まあなんかそういう温かい格好して1回座っちゃうと、
割とこうずっと集中してね、なかなか動きたくないっていうか、 動かない
ことになるんで、 本当なんか昼ご飯食べるまで午前中座ったらずっと昼まで座っていて、
そしてご飯を食べたら今度は夜まで動かないみたいな感じで、 まあだから1日に
2回、2ターンやって、 まあ3、4時間ぶっ通してずっと作業しているみたいなことも結構多くて、
まあその辺がちょっとコックピット感があるっていうのも1つですし、 まああとはやっぱりね、そのこの前もちょっと話しましたけど、
AIとの共同作業ということで、 まあその今までにやったことがあって、やり方を知っている作業をやるっていうよりは、
やったことはないし未知だし、まあなんならちょっとどうやってやればいいかわからないようなこと、
課題はあるんだけど解決策はやったことがなくて、 すぐはやり方知らないっていうようなことでも、
まあ今そのチャットGPTと聞きながらこういう課題を抱えているんですけど、 どんな解決策がありますかみたいなことをまず聞くところから始めて、
そうするとね、まあ今だとこういう解決法やこういう解決法や、 こういうソフトウェアがありますよみたいな、
まあいろんなアイディアというか可能性を教えてくれて、 それを聞いてまあいろいろさらにね、ちょっと調べたりとか質問したりとかしながら、
これが良さそうだなってなったら、そしたらまたチャットGPTとJAS、 これで進めたいんで、
じゃあそのための必要なやり方を教えてくださいとか、 それに必要な、今はこういう風なプログラムになっているけど、
それに必要な変更をちょっと書いてみてくださいとか、 まあそういうチャットGPTと喋りながら、
まあ自分がやったことないような作業、未知の作業もどんどん一緒にやりながら済んで、 でうまくいかなかったらちょっとこういう風にエラーが出ていて動かないんだけど、
どこが悪いですかっていうと、まあここが多分問題ですとかって教えてくれて、 まあそれが当たらない時もあるけど、
自分で調べなきゃいけない時もあるけど、まあとにかくね、そういうこう、 何でも知っているパートナー、
すごい優秀なパートナーのAIとともに、 自分のやったことない未知の作業に向かってどんどんどんどん進んでいくっていうね、
まあそのやっぱスピードが、これまでじゃ本当に考えられない。 あの普通だったらね、やっぱり
本を一冊読むとか、AIドキュメントをザーッと読んで、全部ある程度把握してから、 これが良さそうだってなって取り組むとかで、
もっとこうした調べとか自分の勉強とか、 人に聞いたりとかっていうのが必要だったようなことも、
質問しながらチャットGPTとともに進むと、 どんどんどんどん前に進めるみたいなところがあって、
そこのスピードがね、すごい早いんで、 そういうのも含めて宇宙に向かってね、
要は行ったことのない場所に向かって、 グングン進んでいくコックピットみたいな感じの気持ちになってきて、
毛布にくるまって座りながら、そこに向かっているだけなんですけど、
宇宙船に乗っているようなね、そんな錯覚を覚えるような、 そういう1ヶ月だったなって思います。
なんかちょっと不思議な感じですね。
で、ちょっとまあ、人と会わないというか、 家で作業する日も多かったし、
あんまりこう、普通の人というか人間と会う機会が少なかったんで、
若干こう、浦島太郎というかね、なんかどっか本当に宇宙に行って帰ってきたみたいな、
なんかそんなぐらいの根を詰めた作業をしていたっていう感じでしたけど。
まあやっとちょっとまあ一区切りなんで、 もう少し人間社会といいますか、
インフラはね、やればやっただけ、
成果も出やすいんで、いろんなね、そういう未知の技術とかを組み合わせてうまく動くとすごい楽しいんでいいんですけど、
まあ足腰が整ったらまたやっぱりこう、ユーザーさんに向けた仕組みっていうのをもうちょっと、
もう少しなんていうか人間に近いレイヤーの作業にまた戻っていくのかなっていう感じがするんで、
もう少しそうですね、こう人間、人間に近いところにまた戻っていこうかなみたいな気はしています。
はい、ということでまあそんな1ヶ月が終わって、で、昨日ね、ようやく、
なんかちょっと一応一区切り、まああのRSSファイルのね、配信も変更して一区切りかなと思ってたんですけど、
ちょっと不具合が出てしまいまして、まあRSSの生成がね、うまくいかないということで、結構ね、外部配信されている方にはすごくご不便おかけしたと思うので、本当に申し訳なくてすみませんでした。
いやーなかなか、あの全然あのね、本当エラーなんてないに越したことはないんで、まあ自分なりにはちゃんと一応確かめてやってるつもりだったんですけど、
やっぱちょっと確認が不足していたかなっていうのと、いやでもね、あのRSSの配信は今やっぱかなり難しいというか、結構複雑でして、別に言い訳をするわけではないんですけれど、どういうところに困難さがあるかっていうのをちょっと解説しますと、
まずですね、そのRSSって番組がね、更新されたらファイルを新しくして置いとけばいいんじゃないのって言われたら、まあその通りなんですけど、いろいろまず難しさがありまして、一つはめちゃくちゃクロールされるんですよね。
まあいろんな配信先に登録をしますよね。SpotifyとかApple PodcastとかAmazon MusicとかYouTubeとか皆さん登録されると思うんですけど、その登録先が番組が更新されてないかなということで、RSSファイルが更新されていないかをチェックしに来るんですよ。
で、それがね、こちらからは通知する仕組みがないので、向こうがまだ更新されてないかなと思ってしょっちゅう見に来るっていう感じで、まあ割とどうでしょうね、一番、一番組で数時間に1回とか見に来るような、まあそういう感じで来るんですよね。
で、まあそれがね、配信している番組が1番組とか2番組ぐらいだったら全然大したことないんですけど、もうすでにリッスンから配信されている番組っていうのが数千という数になってきてますんで、その数千番組×1日何回も見に来る×そのSpotifyとかAmazonとかAppleとかっていうそのYouTubeとかその各サービスの×サービス数みたいな感じなんで、
もう今やものすごい数の巡回がね、行われていて、まあそうですね、アクセス数でいうとすごい数なんですよ。だからまあちょっと、そもそもね、この仕組みちょっと非効率というか、もうちょっとなんかね、あの、いやもう更新されたらお知らせするんで、そんなしょっちゅう来るのやめてくださいとかね、あとはうちでリッスンにあるその1000番組2000番組の更新情報をまとめて1回で送るんで、
もういちいち番組ごとに見に行くのやめてくださいとか言いたい気持ちになるぐらい、まあこの仕組みって非効率だよなっていう。で逆にね、あのリッスンにRSSを登録している番組の更新情報はリッスン側からあのRSSを、それもまた数時間1回とか見に行って、新しいエピソードがアップされてないかっていうのをまあチェックし続けなきゃいけなくて、それもまたね、登録された番組数分だけ巡回しているわけですけど、
まあ結構あの、あんまり効率よくないよなっていう仕組みが動いていまして、なのでまず難しさとしては、あのものすごいアクセス数が実はあるんですという、あの人間がアクセスしてくる数よりもずっと多いんじゃないかな、ずっとでもないかな、人間もまあまあなんですけど、まあでも結構な量のアクセスがありますと。
で、そこをね、やっぱりそのロボットが見に来るんですけど、ロボットのせいで人間が見るページが遅くなったりとか、そういうことはあんまりしたくないですよね。だからまあそのRSSファイルっていうのは、その人間が見る仕組みのところとは別のサーバーに置いておいて、基本はそのそんなに更新されるもんじゃないんで、更新されていないうちは、こうキャッシュがね、すごい高速に変えるみたいな、まあそういう構成にしたかったっていうのがあるんです。
で、ただね、これがまたね、また別の難しさがありまして、簡単にね、その新しいエピソードが公開されたら、RSSファイルを作ればいいだけじゃないかっていうふうに思うんですけど、意外とですね、このエピソードの情報っていうのも、まあちょっとずつ変わったりするんですよね。
例えばどういうことかというと、エピソードを今投稿するところを高速化したんで、一旦そのユーザーさんが作った音声ファイルがアップロードされてストレージに置かれますっていう感じなんですけど、その後ですね、ノーマライズのフィルターとかいろいろ処理があって、非同期で、要はユーザーさんはもうアップロード完了っていうふうに画面が変わってますけど、
その後裏側でですね、非同期にジョブっていうんですけど、音声ファイルを適切な形に変換するジョブっていうのが後ろで走ったりとか、あとは画像の処理もですよね、今はアップロードされた画像を正方形に切り取って変換するとか、そういう処理が、あと処理みたいなものが非同期で走ります。
これが非同期で走るがために、例えばブラウザからタイトルとか概要欄とか書くじゃないですか、その内容は投稿した瞬間に一応確定するわけですけれども、そのタイミングと何分後かに音声ファイルが変換されたり画像ができたりとかしますし、さらにその後文字起こしの情報が追加されたりとか、チャプターの情報が追加されたりとかっていう、
RSSに盛り込むべきエピソードに関する情報っていうのが、非同期でポンポンポンポンポンって何回も更新されていくんですよね。
なので、どの時点で最終確定のRSSができるかっていうのは割と定まらないと。何分後には必ずできてるみたいなのもあんまりよくわからないっていう、そういう難しさがあって。
じゃあ、更新するたびにどんどんどんどんアップすればいいじゃないかって思うかもしれないんですけど、これはこれであんまり具合が良くなくて。
例えば、まだ変換前の音声ファイルのURLでRSSを一回配信してしまうと、一旦SpotifyとかApple Podcastとかがその音声ファイルを取得して、それで一旦処理を進めちゃうと。
次回に音声ファイルのURLが変わってもなかなか反映されなかったりするので、そうするとすごく音が小さい音声ファイルが配信されてしまったりとか、そういうこともありますので、
ある程度エピソードの情報がこの後はそんなに変わらないだろうぐらいのタイミングを見計らって、できれば効率的に一回にまとめて新しいエピソードが追加されましたっていう形でRSSファイルを生成して、
そしてRSSファイルが更新されたのでキャッシュをクリアしてくださいっていうのをCDNっていうRSSを一旦保存して高速配信しているサーバーに伝えて、
古いやつを消してくださいっていう命令を投げて、そうするとCDNのサイトからキャッシュが消えて、次に誰かがアクセスしたときに最新のファイルを取りに来るっていう、そういう仕組みが必要で、
ここの大体これぐらい時間が経てば一旦RSS、エピソードの情報が固まっただろうみたいな見極めっていうのが必要になります。
これがまた文字起こしの処理が混んでいるときだとなかなか文字起こしが終わらなかったりとか、音声ファイルも長いとノーマライズの処理も結構時間かかったりとかっていうのもあって、
一旦その数分ぐらいで一旦は変更がある程度終わっているだろうっていう見立てで、一回まとめて新しいRSSを生成して、そして投げるみたいなことをやって動かしているっていう、そんな感じなんですね。
ここのちょっといろいろ処理の食い違いというか、タイミングが合わなかったりとかで、昨日からせっかくエピソードを更新したのにうまくRSSに反映されませんとか、そういうのが発生してたという、そんな感じです。