事例Doyar

Doyar 会議の IT 用語アシスタント(自社プロダクト)

会議を止めずに、
知らない言葉が分かる。

PC で流れている会議の音を聞き取って文字に起こし、出てきた IT 用語の短い解説を隣の画面に並べる、 Windows/macOS 向けのデスクトップアプリです。自分の仕事で毎日使っています。

聞き始めると文字起こしが流れ、左に用語のカードが積まれていきます(音なし)。画面のデータは見本です。
What it does

困っていたことと、できるようになったこと

会議で知らない言葉が出ても、話を止めて聞くわけにはいきません。とくに、開発者と話す営業や PM の人によく起きます。

  • これまで「じゃあ ACL 側で弾く方向で」と言われても、その場で検索すると話から意識が離れる。あとで調べようと思っても忘れる。

    Doyar で話を止めずに、隣の画面に 40 文字ほどの解説がカードで積まれていきます。よく出る言葉は手元の辞書から、待たずに出ます。

  • これまで分からなかった一節を、あとから誰かに聞き直すのは気が引ける。

    Doyar で文字起こしの分からない所を選んで「この部分を解説」。会話の流れを踏まえたうえで質問もできます。

  • これまで会議が終わると、何の話だったかがあいまいになる。

    Doyar で文字起こし・用語カード・質問のやりとりが会議ごとのタブに残ります。再起動しても続きから使え、1 枚の文書に書き出せます。

  • これまでオンライン会議の記録では、どちらが何を言ったのかが混ざる。

    Doyar でスピーカーの音を「相手」、マイクの音を「自分」として、分けて表示します。

How it works

どう作ったか

音の処理のように重くて時間に厳しいところは Rust で書き、画面は Web の技術で作っています。 状態と記録は Rust の側にだけ持たせ、画面はそれを受け取って描くだけにしました。

  1. 拾う

    スピーカーから出ている音とマイクの音を、混ぜずに別々に拾います。

    WASAPI ループバック/Core Audio(Rust)

  2. 区切る

    無音で発話ごとに 1〜6 秒に切ります。話し始めが欠けないよう、直前の 0.4 秒を残します。

    20ms ごとの音量判定

  3. 中継を通す

    アプリは外部サービスの鍵を持ちません。中継が送り先を選び、使った分を記録します。

    Supabase Edge Functions

  4. 起こして、直す

    音声を文字にして先に出し、まとまったところで AI が校正して置き換えます。

    Whisper/Claude

  5. 並べる

    用語カード、文字起こし、解説と質問の 3 つの欄に出します。

    React/Tauri v2

よく出る 61 語は手元の辞書で即答します。知らない言葉だけを AI に聞くので、待ち時間も費用も抑えられます。

判断したことと、その理由

利用者に、追加のインストールをさせない

PC の音を拾う定番は仮想の音声装置を入れるやり方ですが、管理者権限・再起動・手での設定を利用者に求めます。出力の装置に入力の口を開く一手で、Windows と macOS を同じコードで扱えるようにしました。

自分の声と相手の声を混ぜない

オンライン会議では、自分の声はスピーカーから返ってきません。かといって 2 つを混ぜた時点で誰の発言か分からなくなるので、入り口ごとに分けたまま流しています。

生の文字を先に出し、あとでまとめて直す

待たせないために生の文字はすぐ出し、用語の抽出と解説は校正したあとの文字にだけかけます。細切れに AI を呼ぶより呼び出しがおよそ半分になり、入力の質も上がります。

自分の分野の言葉を、先に持たせておく

語彙は分野ごとに 1 つのファイルで持ち、会議ごとに使う分野を選びます。載っている言葉は AI を待たずに出るので、自分の仕事の言葉が増えるほど速く、安くなります。社名や製品名は「聞き取りのヒント」に入れておくと、音声を文字にする段階でその書き方に寄ります。辞書は言葉を見つけるため、ヒントは聞き取るため、と役割を分けています。

打ち合わせの資料を、先に読ませておく

会議の前に資料を貼ると、AI が載せるべき言葉を洗い出し、選んだ言葉の解説をまとめて作ります。解説は資料の全文を踏まえて書くので、同じ略語でも、その打ち合わせで使われている意味になります。会議が始まれば、その言葉は待たずに出ます。

管理者権限なしで入れて、更新もできる

利用者ごとのインストールにしたので、権限の下りていない業務の端末にも入れられます。更新は署名つきで配り、通知からインストールまで通しています。

  • Tauri v2
  • Rust
  • React
  • TypeScript
  • Whisper
  • Claude(Anthropic API)
  • Supabase
  • Stripe
Before building

製品として決めることを、文書にした

機能を足す前、配る前に、何をどう決めるかを文書にしています。ここに載せているのは目次だけです。 前提が変わったときは、経緯ごと書き直しています。

要件定義書

要件

誰のどんな場面に、何を約束するか。機能と非機能の要件ごとに「実装済み・一部・計画」と根拠を付け、要件と実装の対応表まで持っています。

  1. 製品の目的と解く課題
  2. 利用者と利用場面
  3. 用語
  4. システムの前提構成
  5. 機能要件(音声キャプチャ、文字起こし、用語カード、解説と Q&A、アカウントと課金、運営 ほか 11 領域)
  6. 非機能要件(性能・リアルタイム性、可用性、コスト、セキュリティ、プライバシー・法務 ほか 10 項目)
  7. 制約と未決事項
  8. 要件と実装の対応表

画面遷移図

設計

ウィンドウ、ダイアログ、アプリの外(ブラウザでのログインや決済)までの行き来を 1 枚にしたもの。

  1. 全体(ウィンドウ・モーダル・アプリの外)
  2. 画面の一覧(入口と出口)
  3. 会議タブの中の状態
  4. 資料から語彙を作る流れ

上流構成図

設計

どの要求が、どの外部サービスへ行くか。文字起こしと AI を、それぞれ別に切り替えられる形にしています。

  1. 配線(どの要求がどこへ行くか)
  2. 文字起こしの上流
  3. LLM の上流
  4. 切り替えの場所

リリース判定

判定

判定の基準は「自分の PC でだけ成り立っている前提はないか」の 1 つ。配る前に確かめることを、見つけるたびに足していく一覧です。

  1. 配る前に直すもの
  2. 配ったあと早めに直すもの
  3. 満たしているもの(実測で確認)
  4. 使い方

有料化の計画

計画

機能ごとの原価を同じ音源で実測し、事業者を値段と利用規約の両方で比べたもの。前提は検証して、結果に合わせて書き直しています。

  1. 機能別の原価(実測)
  2. 文字起こし事業者の比較
  3. 録音の同意・通知の要件
  4. アーキテクチャの選択肢

課金の設計

計画

金額は「いくらなら払うか」から置き、その数字を入れたときに何が起きるかが分かる形にしています。

  1. 価格
  2. ポイント(何時間ぶんか、話している時間と会議の時間の違い)
  3. 何がポイントを消費するか
  4. 決済サービスの設定

モデル調達の検討

計画

AI の提供元を 1 社に固定しないための比較。単価だけでは決めず、法務・品質・待ち時間も並べています。

  1. いまの原価(実測)
  2. 単価の一覧(公式の値で確かめる)
  3. 実際の使い方で計算した原価
  4. 金額で決めてはいけない部分

更新の配信

設計

出した翌日に見つかる不具合を直せないものは、製品として出せない。そのための更新の仕組みと手順です。

  1. なぜ要ったか
  2. 全体の流れ
  3. 決めたこと
  4. 出す手順(鍵の置き場、巻き戻し)

このほかに、文字起こしの収容力、端末間の同期、運営の管理画面、クラウドのデータモデルなども、決めごとごとに 1 本ずつ書いています。

What I owned

私が引き受けたこと

課題を見つけるところから、要件、設計、実装、配布の仕組み、有料化の計画まで、一人で持っています。

引き受けた範囲 6 / 7

  1. 相談
  2. 要件
  3. 提案・計画
  4. 設計
  5. 実装
  6. 運用
  7. 改善
  • 上流

    自分が会議で困ったことから始めて、誰がどの場面で使うかを書き分けました。IT に近いけれど専門ではない営業や PM、技術系の動画で学ぶ人、自分の分野の言葉で使いたい専門家、それと運営する自分です。

  • 折衝・プランニング

    有料にするための計画は、原価の実測から立てています。文字起こしの事業者は値段だけでなく利用規約まで読み、第三者に提供できないところは候補から外しました。

  • 自走

    配る前の判定表を自分で作り、手元の PC でしか成り立たない前提を洗い出して、配布の前に直しています。

  • フルスタック

    OS の音を拾う部分(Rust)から画面(React)、中継のサーバー、課金の設計、配布と更新の仕組みまで手を入れています。

  • ワントップ

    課題の発見から、要件定義・設計・実装・配布の設計・有料化の計画まで一人で持っています。

何から決めればいいか分からない段階でも、どうぞ。

音声や AI を業務のアプリに組み込みたい、要件をまとめるところから手伝ってほしい、という話も歓迎です。 構想段階のご相談や、見積だけでもかまいません。