会議のムダを価値化する全録文字起こしシステムの導入
データアナリティクス部の庄内です。皆さん、会議中の議事録作成に苦労したことはありませんか?特に、会議中の脱線やブレインストーミングなど会話の展開が想定できない場合、修正しながらでは重要な情報を見逃してしまうことがありますよね?とは言え、途中で「今のはこういうことですか?」なんて野暮な質問したらせっかくの盛り上がりに水を差しかねません。
会議のムダの問題点
従来、会議前にアジェンダと同時に議事録を作成しておいて、会議中に修正する程度で、会議直後に回覧するのが基本でした。アジェンダのフロー以外はムダ話しとして極力排除の方向が良しとされていたと思います。しかし、このやり方では会議中に想起された価値ある脱線やアイデアをうまく拾えないことが多いんです。(鮮度が重要なので、後では思い起こせない場合もあります) 例えば、ブレインストーミングの最中に出た新しいアイデアが、その場では議事録に反映されず、後から思い出して追加するとか闇に葬られるとか・・・何かともったいない!個人的な体験と気づき
私個人はOpenAI/whisperをコマンドとして使い全録文字起こしテキストから議事録を作成しています。(TEAMSの文字起こしで問題ないという人もいるでしょう)しかし、会議のメンバーの中には、TEAMSのコントロール権限がなかったり、Whisperコマンドを使える環境にない人もいて、その人たちは置いてけぼり状態だったりします。これは問題!解決策
そんなことを知って、「文字起こしサーバ」があれば、会議中のすべての発言を記録し、誰でも簡単に議事録を作成できるよね・・・ということで、重い腰を上げてみました。システム構築
とりあえず、faster_whisperを使ってFlaskアプリを作ることにしました。 (※コードを張るのは読みづらくなるので、VoiceNoteに改名し、https://github.com/Ecomott-DataAnalytics/VoiceNote に置きました) いきなり利用され過ぎてパンクしても面倒なので、gnuicorn、celery、redisを使って、しっかりシステム構築します。シーケンス図はこんな感じ これで安定稼働が見込めるシステムになりそうです。ちなみに、対外向けに公開する訳ではないので、NginXとかは入れません。Singularityコンテナ化
Python書くところまでは簡単だけど、サーバに設置するとなるとそれなりに面倒なことも多いですよね?そこで今回はコンテナにまとめて、利用しやすくします。 (※こちらも同様にGitHubに移行しました。こちらがメインという説もある) このコンテナ定義で以下のように作成&起動させれば、利用可能です。(※CUDA_VISIBLE_DEVICES=0はGPUが複数あるとき0番目に制限する意)
1 2 |
# gitとsingularityが使える環境で $ git clone https://github.com/Ecomott-DataAnalytics/VoiceNote.git $ cd VoiceNote $ singularity build --fakeroot voicenote.sif voicenote.def $ CUDA_VISIBLE_DEVICES=0 singularity run --nv --nvccli voicenote.sif |