はじめに
現在、転職活動に向けてポートフォリオを制作しています。前回は音声認識アプリを作成しましたが、今回はさらに一歩踏み込んで LLM(大規模言語モデル) を実務に組み込むことに挑戦しました。
開発のきっかけは、以前の職場で会議の文字起こしに膨大な時間を費やしていた経験です。この「録音した音声からの文字起こし」という退屈で時間のかかる作業を自動化し、実務を劇的に効率化したいと考え、開発をスタートしました。
プロジェクトの進化:シンプルから「戦略的」へ
当初は、録音済み音声を OpenAI Whisper で文字起こしし、LLMで要約するというシンプルなバッチ処理を想定していました。しかし、開発を進める中で「実務で本当に役立つ形」を模索した結果、以下の機能が必要であるという結論に至りました。
リアルタイム文字起こしと並行要約
会議の進行に合わせて、リアルタイムで内容を把握し要約を生成する。
RAG(検索拡張生成)による監視とリスク検知
過去の会議内容を参照し、今回の発言との食い違いや、コンプライアンス違反、会社にとって不利益となる発言が含まれていないかをリアルタイムで監視し、ユーザーに通知する。
なぜ「東方Project」と融合したのか
LLMの出力をユーザーにフィードバックする際、「AIが音声でつっこみを入れる」という機能を実装しました。その過程で、「無機質な合成音声ではなく、自分の推しキャラがつっこみを入れてくれたら、退屈な会議や議事録作成が楽しくなるのではないか?」 というアイデアが浮かびました。
そこから一気に着想が広がり、キャラクターが豊富で熱狂的なファンを持つ 「東方Project」 の世界観を、実務アプリのUI/UXと融合させることになりました。
技術スタックとこだわり
開発言語: Python
ハードウェア: NVIDIA GeForce RTX 3090 環境によるローカル推論の活用
プロンプトエンジニアリング: 各キャラクターの性格を再現するため、20項目に及ぶ詳細なペルソナ設定 を実装
アセット: 画像生成AIを活用した独自のビジュアル作成
おわりに
かつて職場で「属人化(自分にしかメンテナンスできない)」を懸念され、自作アプリが不採用になった経験があります。
しかし今回の個人開発では、「外見(UI/UX)は徹底的に属人的なこだわり(推し)を詰め込みつつ、中身(コード/環境)は標準的な技術で構成する」 という自分なりの回答を形にしています。
一人でどこまで作り込めるか分かりませんが、少しずつ開発を続けていく予定です。よろしくお願いします。
続きはこちらです。https://qiita.com/kazuhisarico0128/items/55227c28ce0e9cffefca
