IT業界に四半世紀棲息しているビジネス職の私がアプリを自作した話

IT業界に四半世紀棲息しているビジネス職の私がアプリを自作した話

コードは一切書けないビジネス職の私がClaude Codeで議事録アプリ「ギジロー」を作りました。録音から文字起こし、話者識別までMacの中だけで完結させた理由、話者の学習をどう育てたか、なぜこの仕様になったのか、誰でもネイティブアプリを作れてしまうことの驚きと喜びについて。
2026.08.30

リテールアプリ共創部グロースグループの吉崎です。

リテールアプリ共創部は事業会社さまにアプリケーション開発のソリューションを提供しています。
なかでも私の所属するグロースグループではショッピング、レストラン、ファッションブランド、プロスポーツなど多くのお客さまにアプリの初期開発から運用保守、追加開発、事業成長のご支援をさせていただいています。

グループマネージャーの立場で日々大小さまざまなプロジェクトを見ています。
そのため1日の大半が社内外のミーティングで埋まってしまいます。
旧スペックな私の脳みそリソースでこれらを並行かつ連続的に整理し処理するのは至難の業です。

そこに現れたのが生成AIでした。
なによりもたすかっているのがGoogleカレンダーと連動するGeminiの議事録機能です。
これを見返せばそのときの情報、判断、次のタスクを効率的に脳みそにストアできます。

ただこの議事録網にひっかからない打ち合わせがあります。
それがお客さまのTeamsやZoom、あるいはインターネット接続が提供されない会場での対面会議です。
これらのシーンでの議事録が揃わないことが悩みの種でした。

これを上長にグチると「それMac単体でできますよ。ただ誰かエンジニアに頼まないといけないですねー」とのレス。
これについカッとなって脊髄反射駆動、否、AI駆動開発をはじめました。

そしてうまれたのがClaude Codeで作ったmacOSのネイティブアプリギジローです。
インターネットで外部接続せずMac内で録音、文字起こし、話者識別をして、議事録のMarkdownまで出してくれるというものです。

about_gijiro

くりかえしておきますが私はコードが書けません
中学生のころは雑誌「ベーマガ」に掲載されていたBASICのリストをひたすら打ち込んで動かして遊んでいました。この頃が私のコーディング技術のピークでした。
プライベートでは「とほほのWWW入門」でCGIを覚えてネット掲示板を設置して、ホームページビルダーでテキストサイトを作ってMovable TypeやWordPressでブログを立ち上げたりはしてましたが、そのへんで止まっていました。
それがAIのおかげでこんなことができるようになってしまった。
長生きはするもんです。

要求仕様の朝令暮改を高速に繰り返しました。(AIは文句言わない)
自分で使うのはもちろん、同僚に使ってもらいながら、修正、リファクタリング、追加機能開発をすすめ、現在手元のバージョンはすでに3.0.54まで進んでいます。

というわけでこの記事では実装の中身ではなくなぜこの仕様になったのかを書きます。
「こういう体験がほしい」が先にあってそれを実現するために何を選んだか、という話です。

お客さまの情報をよくわからないどこかに置きたくない

我々はクライアントワークをしています。
打ち合わせで話しているのはお預かりしているお客さまの大切な情報です。

議事録SaaSは世の中にたくさんあるしお金を払えば驚くほど便利なものもあります。
それは前提としたうえで会議の音声そのものがよくわからない社外のどこかに置かれるという状態はやっぱり気が引けます。
「便利なんだけれどこの会議では使えないな」が積み重なると、そのツールは結局使わなくなる。

なのでギジローはネットにつながなくても完結することを最初の要件にしました。
幸いいまのMacはそれができるだけの性能を持っています。
文字起こしはWhisper、話者識別も専用のモデルをMacに載っているNeural Engineの上で動かしています。
初回のみのダウンローでちょっと時間は必要ですが、1時間の会議でも実用的な時間で処理が終わり音声ファイルがネットワークに出ることは一切ありません。

historyindex

Ollamaがけっこういいという発見

議事録の生成(要約)だけはLLMが必要ですがここはエンジンを選べるようにしました。
ひとつはClaude APIですが、「ギジロー」の売りはもうひとつのOllamaです。

settingsumm1

きっかけは完全に趣味で、ローカルLLMがおもしろそうだなと自宅のPCで動かして遊んでいました。
「あれ、この程度のことならOllamaのQwenでもいけるのでは?」と思ったのが始まりです。
どうでもいいけど、Ollamaはロゴがかわいいですね。

そしてもうひとつ冒頭に書いたあの切実な理由があります。
お客さま先の会議室にはネット環境がないことがけっこうある
そういう場所でこそ議事録を取りたいのにクラウド前提のツールはそこで止まってしまう。
録音から議事録の生成まで全部ローカルで完結すれば最強になるハズ...

で、実際に組み込んでみたらOllamaけっこういい
さすがにClaudeと同じ品質とまではいかないけれど決定事項とToDoがちゃんと並んだ議事録はふつうに作れます。
オフラインでAPI課金もゼロでそこそこの品質なのでローカルLLMを試したことがない方にこの用途はかなりオススメしたい。

ただ100点満点でいうと45点くらい。
というのも素の文字起こしはそのままだとまだ実用に耐えないからです。
誰がしゃべったのかわからないし固有名詞は片っ端からハズれる。
議事録として成立させるために越えないといけない壁が大きく2つありました。

誰の発言なのかがわかること

議事録として使えるかどうかはここで決まると思い、いちばん試行錯誤したところです。

「自分」と「相手」だけは絶対に間違えない

オンライン会議のときギジローはマイク(自分)とMacの再生側(相手)を別々のトラックとしても保存しています。

一応Macのローカル環境で話者分離はしています。
ただこれだけに頼ると声質が近い人が同じ人としてまとめられたりなんかしてけっこうまちがえています。
けれど「自分の声はマイクから、相手の声はMacの再生側から入っている」というのはAIの推論じゃなくて録音経路として確定している事実です。

なので発話ごとに両方の音量を比べマイク側が大きければ「自分」、スピーカー側が大きければ「相手」と決め打ちしています。
話者分離が失敗しても最低限「自分/相手」だけは正しい議事録が残る
ここはAIに判断させないほうが確実でした。

声を登録すると名前で出るハズだった

設定画面で数秒しゃべって名前を登録するとその人の声の特徴が保存されるようにしました。
以降の会議では同じ声の人に自動でその名前が付き、我ながらいい機能だと思ったのですが、そもそも「ちょっと声を登録してもらえますか」なんて頼めません。
同僚ならともかくお客さまお願いするのも現実的じゃないので、機能としては正しいけれど運用としては違うなとなりました。

なのであとから名前を付けられるようにした

そこで作ったのが「声のライブラリ」です。
会議を文字起こしすると登録されていない声が自動的にここに貯まります

washa

設定画面には「この声、誰?」という一覧が並んでそれぞれ数秒だけ再生できる。

settinggen3

聞いて誰かわかったらその場で名前を付けるとそれ以降の会議ではその人は自動的に名前で表示されるようになります。
事前に頑張らなくても使っているうちに勝手に精度が上がっていきます。
いいセンまでキてるな思ったけれどまだ足りません。

結局、文字起こしの上で直接直すのがいちばん早かった

これがいちばん最近入れた機能です。
声のライブラリは便利なんですが**「声だけ聞いて誰か当てる」がけっこう難しい**。
文字起こしを読んでいれば「あ、これ○○さんだ」と一発でわかるのに切り出された数秒だけ聞かされても意外とわかりませんでした。
なので書き起こし画面の話者名をそのままクリックして修正できるようにしました。

  • 話者名を修正するとその会議の全発言にまとめて反映される
  • 実在の名前に修正するとその人の発言をつなげて声紋を学習する
  • 以降の会議ではその声に自動で名前がつく

さらに話者分離が別々の2人をひとりにまとめてしまったときのために発言単位で話者を付け替える機能も入れました。
話者をひとり追加して該当する発言だけそちらに割り当てる。
割り当て直したぶんの音声からまた声紋を学習し直します。
つまり議事録を読み返しながらラベルを直していくとそれがそのまま次回以降の学習になる
使えば使うほどアタるようになるのでなおす作業がちょっとたのしくなってきました。

社名も人名もまずアタらない

そして2つめの壁がこれ。

私たちリテールアプリ共創部は社内で「プリソー」と呼ばれています。
部署や製品の略称を汎用の文字起こしはきれいにハズしてきます。
弊社は社内固有の用語がとにかく多いので素のままだと議事録が謎の固有名詞まみれになってしまい、固有名詞が壊れた議事録は読み返す気さえ起きなくなってしまいます

そこでギジローに辞書登録を入れました。
「正式表記, 別表記, 別表記…」とカンマ区切りで1語ずつ登録していきます。

settingsumm3

  • 文字起こしのとき:登録した正式表記を語彙のヒントとして渡し正しく聞き取らせる
  • 議事録を作るとき:辞書ごと渡して「誤記はこの正式表記に直し表記も統一しろ」と指示する

さらに声を登録した人の名前も辞書と一緒に渡すようにもしました。
人名は誤変換の宝庫なのでここがアタるだけで議事録の読み心地がまるで変わります。

会議に出てこない情報を足せるようにした

文字起こしにはどうしても現れない情報があります。
画面共有で見せられた資料の中身や口頭で共有されなかった前提、あるいは会議中や終わったあとで思い出した宿題とか。

なのでコンテキストノートという自由メモ欄を作りました。
録音中にも書けるし文字起こしが終わったあとや議事録生成後に書き加え再度生成することで議事録の質があがります。
URLを書いておけばその中身も読みに行って材料にしてくれるのでローカルや関連リポジトリのフォルダを登録しておくことで反映されることになります。

議事録の質はAIの賢さより渡した情報(コンテキスト)で決まる
これは作ってみていちばん実感したことでした。

録音の開始と終了をとにかく忘れる

正直これがいちばん切実でした。
忙しい日ほど録音ボタンを押し忘れる。
そして終わったあと止め忘れて2時間ぶん録れている。
もう何度やったかわかりません...

そこで予約録音を入れました。
曜日・時刻・繰り返し(毎日、平日、毎週)と録音時間を登録しておけば時間になったら勝手に始まって指定時間で勝手に止まります。
これで定例会議は運用から完全に消えました。

cueset

そして使っているうちに仕様が育っていきました。

会議は伸びる。
これはもう避けられない。延長できないと成立しない。
なので通知から「+30分」などのクリックで伸ばせるようにしました。

会議は連続する。
前の会議が押している最中に次の会議の予約時刻が来てしまう。
なので録音中に次の予約時刻が来たらいったんキューに積んでおいて前の録音を止めた瞬間に自動で次の録音を始めるようにしました。

これを作っててむかしのビデオデッキの予約録画を思い出しました。
プロ野球のナイターが延長すると金曜ロードショーがまるごとうしろにズレてしましたのしみにしていた映画の録画がクライマックス前に録れていない、なんてこ悲劇がありました(伝わりますかね...)。
それを吸収してくれる予約録画とEPG(Electronic Program Guide)が出たときの「これだよ!」という感覚をそのまま持ち込んだ形です。

そして夏休み最終日、子どもたちに使ってみた

この記事を書いているのがちょうど夏休みの最終日です。

せっかくなのでWi-Fiを切ったMacでギジローを立ち上げて、中学3年の長女と小学6年の次女に「夏休みのふりかえり」インタビューをしてみました。
9時50分から5分間のマイクのみ(対面会議)モードで予約録音をセットしてリビングのテーブルに集合。

コンテキストノートには事前に2行だけ書いておきました。

長女は中学3年で部活(吹奏楽部)のコンクールがあり受験が控えている
次女は小学6年でチアを習っていて前方転回の練習をしている

録音は3分29秒。

logs

書き起こしは「父」「長女」「次女」に分かれて出てきましたが、これは自動でこうなったわけではありません。
姉妹の声がそっくりで話者分離はほとんど機能しませんでした。
ふたりがひとりの話者にまとめられてしまいそのままでは誰の発言なのかぐちゃぐちゃです。

そこでさっきの「書き起こしの上で直す」の出番でした。
何行かを次女に付け替えると学習が走って残りも揃う。
ここを直しておかないと議事録の中身も「長女」と「次女」が混ざったままになります。
家族という、たぶん世界でいちばん声の似た相手で試してしまったわけですが、結果として手直し機能のありがたみがよくわかりました。

summervacatoinresults

そこから生成された議事録の要約エンジンはもちろんOllamaです。
そして最後にこれが残りました。

ToDo / ネクストアクション
☐ 今後の学習計画の相談(担当: 父 / 期限: 2学期初め)

父、つまり私の宿題が増えました...

このあいだMacは一度もネットにつながっていません。
録音も文字起こしも話者の識別も議事録の生成も、全部このMacの中だけで終わっています。

インターネットのない会議室でも議事録が作れるという最初の要件が夏休み最終日のリビングで確認できました。
まさかこの検証を家族とやることになるとは思いませんでしたが。

さいごに

作っている間、詰まったのはほぼ全部実装じゃなくて仕様でした。

自動停止は何分にするか。
話者がわからなかったときにどう表示するか。
このへんはAIに聞いても答えが出ません。
自分の仕事の進め方を知っている自分にしか決められません。
言ってしまえば「どう作るか」をAIが引き受けてくれたぶん「どういう体験にしたいか」を考える時間が増えたということ。

ギジローはまだ育てている最中の完全に自分たちの道具、かつ、毎日の会議で実際に使えるものがいま手元にあります。(あぁ、たのしい)

ホームページビルダーで「工事中」のGIFを貼っていたころの自分に「25年後、おまえは音声認識をまわすMacアプリを自作しているぞ」と伝えたい。
というかあのころの自分は設置した掲示板に書き込みがひとつ入っただけで小躍りしてました。
それがいまや会議室のすみでひっそり動いて議事録を吐く生き物を飼っている。
人生、何が起きるかわかりません。

「作りたいものがあるので、誰か!おねがい!!」
これは、私がこの四半世紀ずっと言い続けてきたセリフです。
しかもたちの悪いことに言うだけではすまなかった。
仲間のエンジニアを口説き落として一緒に会社まで作り失敗もした。
熱量だけはあったけど自分で手を動かせなかった。
あのとき巻き込んでしまったみなさん、本当にすみませんでした。
その私がいまは自分でアプリを作っている。
誰も巻き込んでいないし誰にも謝らなくていい。
これはもう四半世紀ぶんの何かが回収されている気がします。

あらためて、長生きはするものですナ。


Claudeならクラスメソッドにお任せください

クラスメソッドは、Anthropic社とリセラー契約を締結しています。各種製品ガイドから、業種別の活用法、フェーズごとのお悩み解決などサービス支援ページにまとめております。まずはご覧いただき、お気軽にご相談ください。

サービス詳細を見る

この記事をシェアする

AI白書

関連記事