渋谷でもくもく会に参加した
渋谷でもくもく会 に参加してきた。
こういうイベントに参加するのは久しぶりで楽しかった。
会の雰囲気
シェアオフィスでの開催だったので静かな空間で良かった。 参加者も10人くらいで適度におしゃべりしたりするのにちょうどいい感じ。
もくもく会だが、作業したり喋ったりゆるい雰囲気で良かった。 (ずっと黙っている会もあったりするが、自分好みではない)
他の参加者は若手と中堅のエンジニアの方が半々くらいで、 適度に会話が盛り上がって楽しかった。 意外と女性の参加者も多かった。
私は最近静岡に引きこもっているので、Tech系の話をするのは久々で 自分がこういうおしゃべりに飢えていたことに気づいた。
若手エンジニアの方たちの話は自分にとっては新鮮なところもあって、 転職の話とかどのように技術を学んでいくかとか、話題が若くて良かった。
やっていたこと
最近 ChatGPT に AI と音声で会話できる機能がついたのだが、それと同じようなものを ローカルLLMを使って実現したい。次の流れで実現できると思っている。
- ユーザーの音声のテキスト化
- ユーザーの音声をブラウザで取得
- 音声データをStreamでサーバーにおくる
- サーバーでは音声データをWhisperで文字に変換する (ここもStream処理)
- 文字データをフロント側にStreamで返却しつつ、DBにも保存する
- テキストをローカルLLMにわたして返答をつくる
- 100文字くらいの短い文章を作るように命令しておく
- インプットはStreamではなくまとめてテキストデータを入れる
- アウトプットをStream で受け取る
- LLMの返答を音声データにする
- LLMのアウトプットを Stream で受け取り、それを RealtimeTTS などを用いて Stream で音声データにする
- サーバーからフロントに音声データと文字データを Stream で送る
- フロントではサーバーからのレスポンスを Stream で受け取りつつ、音声を再生し、文字データを画面に表示する
もくもく会では、ブラウザ上で音声データを取得して ReadableStream でサーバーに送り、 サーバー側でファイル化するという処理を作ることができた。
実際には受け取ったバイナリをファイルにするんじゃなくて、そのまま whisper_online_server.py に渡してテキスト化したい。
結果
会場ではかなり集中して作業できてきちんとした進捗が出せてよかった。
12:00 - 18:30 (わたしは 17:30 で帰ったけど)という長時間の会だったので、 なかなか普段ここまでまとまった時間は取れないので、それだけでもありがたかった。
蛇足: わからないことをAIに聞くことに慣れた
会とは関係ないけど WebStream API をつかったコーディングは初めてで MDNのサンプルコードだけだとしんどいなぁと思っていたところ、 ChatGPTにサンプルコードを提示させるとかなりいいコードがでてきて、 なんかもうこれでいいじゃんとなった。 こういう規格に沿ったものをつくるのはAIのほうが得意そうだ。
バックエンドも Deno にしているので Web 標準の機能が使えてスッキリするが、 これも資料が少ないので ChatGPT に聞いたほうが何かと早い。。。
ChatGPTの作ったコードをとりあえず動かしてみて、問題があったらドキュメントを参考に修正するという感じ。
すごい時代になったなぁ。。。
一覧に戻る