利用者に、追加のインストールをさせない
PC の音を拾う定番は仮想の音声装置を入れるやり方ですが、管理者権限・再起動・手での設定を利用者に求めます。出力の装置に入力の口を開く一手で、Windows と macOS を同じコードで扱えるようにしました。
Doyar 会議の IT 用語アシスタント(自社プロダクト)
PC で流れている会議の音を聞き取って文字に起こし、出てきた IT 用語の短い解説を隣の画面に並べる、 Windows/macOS 向けのデスクトップアプリです。自分の仕事で毎日使っています。
会議で知らない言葉が出ても、話を止めて聞くわけにはいきません。とくに、開発者と話す営業や PM の人によく起きます。
これまで「じゃあ ACL 側で弾く方向で」と言われても、その場で検索すると話から意識が離れる。あとで調べようと思っても忘れる。
Doyar で話を止めずに、隣の画面に 40 文字ほどの解説がカードで積まれていきます。よく出る言葉は手元の辞書から、待たずに出ます。
これまで分からなかった一節を、あとから誰かに聞き直すのは気が引ける。
Doyar で文字起こしの分からない所を選んで「この部分を解説」。会話の流れを踏まえたうえで質問もできます。
これまで会議が終わると、何の話だったかがあいまいになる。
Doyar で文字起こし・用語カード・質問のやりとりが会議ごとのタブに残ります。再起動しても続きから使え、1 枚の文書に書き出せます。
これまでオンライン会議の記録では、どちらが何を言ったのかが混ざる。
Doyar でスピーカーの音を「相手」、マイクの音を「自分」として、分けて表示します。
音の処理のように重くて時間に厳しいところは Rust で書き、画面は Web の技術で作っています。 状態と記録は Rust の側にだけ持たせ、画面はそれを受け取って描くだけにしました。
拾う
スピーカーから出ている音とマイクの音を、混ぜずに別々に拾います。
WASAPI ループバック/Core Audio(Rust)
区切る
無音で発話ごとに 1〜6 秒に切ります。話し始めが欠けないよう、直前の 0.4 秒を残します。
20ms ごとの音量判定
中継を通す
アプリは外部サービスの鍵を持ちません。中継が送り先を選び、使った分を記録します。
Supabase Edge Functions
起こして、直す
音声を文字にして先に出し、まとまったところで AI が校正して置き換えます。
Whisper/Claude
並べる
用語カード、文字起こし、解説と質問の 3 つの欄に出します。
React/Tauri v2
よく出る 61 語は手元の辞書で即答します。知らない言葉だけを AI に聞くので、待ち時間も費用も抑えられます。
PC の音を拾う定番は仮想の音声装置を入れるやり方ですが、管理者権限・再起動・手での設定を利用者に求めます。出力の装置に入力の口を開く一手で、Windows と macOS を同じコードで扱えるようにしました。
オンライン会議では、自分の声はスピーカーから返ってきません。かといって 2 つを混ぜた時点で誰の発言か分からなくなるので、入り口ごとに分けたまま流しています。
待たせないために生の文字はすぐ出し、用語の抽出と解説は校正したあとの文字にだけかけます。細切れに AI を呼ぶより呼び出しがおよそ半分になり、入力の質も上がります。
語彙は分野ごとに 1 つのファイルで持ち、会議ごとに使う分野を選びます。載っている言葉は AI を待たずに出るので、自分の仕事の言葉が増えるほど速く、安くなります。社名や製品名は「聞き取りのヒント」に入れておくと、音声を文字にする段階でその書き方に寄ります。辞書は言葉を見つけるため、ヒントは聞き取るため、と役割を分けています。
会議の前に資料を貼ると、AI が載せるべき言葉を洗い出し、選んだ言葉の解説をまとめて作ります。解説は資料の全文を踏まえて書くので、同じ略語でも、その打ち合わせで使われている意味になります。会議が始まれば、その言葉は待たずに出ます。
利用者ごとのインストールにしたので、権限の下りていない業務の端末にも入れられます。更新は署名つきで配り、通知からインストールまで通しています。
機能を足す前、配る前に、何をどう決めるかを文書にしています。ここに載せているのは目次だけです。 前提が変わったときは、経緯ごと書き直しています。
誰のどんな場面に、何を約束するか。機能と非機能の要件ごとに「実装済み・一部・計画」と根拠を付け、要件と実装の対応表まで持っています。
ウィンドウ、ダイアログ、アプリの外(ブラウザでのログインや決済)までの行き来を 1 枚にしたもの。
どの要求が、どの外部サービスへ行くか。文字起こしと AI を、それぞれ別に切り替えられる形にしています。
判定の基準は「自分の PC でだけ成り立っている前提はないか」の 1 つ。配る前に確かめることを、見つけるたびに足していく一覧です。
機能ごとの原価を同じ音源で実測し、事業者を値段と利用規約の両方で比べたもの。前提は検証して、結果に合わせて書き直しています。
金額は「いくらなら払うか」から置き、その数字を入れたときに何が起きるかが分かる形にしています。
AI の提供元を 1 社に固定しないための比較。単価だけでは決めず、法務・品質・待ち時間も並べています。
出した翌日に見つかる不具合を直せないものは、製品として出せない。そのための更新の仕組みと手順です。
このほかに、文字起こしの収容力、端末間の同期、運営の管理画面、クラウドのデータモデルなども、決めごとごとに 1 本ずつ書いています。
課題を見つけるところから、要件、設計、実装、配布の仕組み、有料化の計画まで、一人で持っています。
自分が会議で困ったことから始めて、誰がどの場面で使うかを書き分けました。IT に近いけれど専門ではない営業や PM、技術系の動画で学ぶ人、自分の分野の言葉で使いたい専門家、それと運営する自分です。
有料にするための計画は、原価の実測から立てています。文字起こしの事業者は値段だけでなく利用規約まで読み、第三者に提供できないところは候補から外しました。
配る前の判定表を自分で作り、手元の PC でしか成り立たない前提を洗い出して、配布の前に直しています。
OS の音を拾う部分(Rust)から画面(React)、中継のサーバー、課金の設計、配布と更新の仕組みまで手を入れています。
課題の発見から、要件定義・設計・実装・配布の設計・有料化の計画まで一人で持っています。
音声や AI を業務のアプリに組み込みたい、要件をまとめるところから手伝ってほしい、という話も歓迎です。 構想段階のご相談や、見積だけでもかまいません。