【1-1】「これ、自分で作れませんか」— 有料アプリの自作を思い立った日
【この章について】 この連載は、プログラミング経験ゼロの私が、有料の音声入力アプリTypelessの「自分専用版」を作っていく記録です。第1章(全5回)は、Claude Codeと出会う前の約3ヶ月の話。別のAIと組んで、動くものは確かにできたのに、だんだん使わなくなっていった日々です。当時の道具が発話ログを382件残していて、この章の引用はすべてその実物から取っています。うまくいった話ではありません。でも、第2章から始まる3週間は、この3ヶ月の上に建っています。
著者の自己紹介
前の記事
有料アプリに、月々払っていた
Typelessという音声入力アプリがある。喋ると、AIが整えた文章になって出てくる。「えーと」も消えるし、語順の乱れも直る。便利だった。本当に便利だった。
ただ、有料である。そして日本語がときどき、惜しい。
惜しい、というのが厄介だった。まったく使えないなら諦めがつく。9割よくて1割惜しいと、その1割が毎日目に入る。
そしてある日、私は検索の代わりにAIに聞いた。Geminiである。
Typelessという音声入力システムがとても気に入っています。このTypelessのようなシステムを、オープンソースで構築することはできますか?教えてください。
これが、すべての始まりだった。
「できます」と、あっさり返ってきた
返事は、拍子抜けするほど前向きだった。
音声をテキストにする部分はWhisperというものがある。文章を整える部分は大規模言語モデルに投げればいい。それを繋ぐ仕組みも既にある。三つ並べるだけです、と。
しかもこう書いてあった。オープンソースで作れば、プライバシーやカスタマイズ性で「本家を超えるメリット」もある。
用語|Whisper/大規模言語モデル(LLM)
Whisper は、音声を文字にするAI。無料で公開されていて、自分のパソコンでも動かせる。
大規模言語モデルは、文章を扱うAI。ChatGPTやGeminiやClaudeがこれ。
この2つを繋ぐ、というのが今回の作戦だった。
私はすぐ、こう返している。
はい、その構成で進めたいです。それでは、初心者向けに、このシステムを構築するための具体的な手順を教えてください。
「初心者向けに」。この一言を、私はこの後3ヶ月にわたって何度も繰り返すことになる。
最初の壁は、コードではなかった
手順が返ってきた。まずAPIキーを取る、と。

この画面に来ましたが、APIキーが見つからないようです。教えてください。
どうやるんですか、この画面から。プロジェクトは何もないと言われて、何も選択できないんですけど?
用語|API/APIキー
API は、よそのサービスの機能を自分のプログラムから借りるための窓口。
APIキーは、その窓口で「私です」と名乗るための文字列。パスワードのようなもの。
AIを使うプログラムを書くには、まずこれを取るところから始まる——そして、ここで多くの人が止まる。
次に「ターミナルで」と言われた。
ターミナルと言っても、何をやればいいんですか? 何もまだホストもコンテナも作っていない状態ですよ。
サーバーが要る。サーバーを置く場所が要る。そこに入る方法が要る。コードを1行も書かないうちに、越えるものが3つ増えた。
コンテナの作成方法を丁寧に教えてください。
無事コンソールでログインできました。これをTeraTermからSSHで入りたいので、SSHの設定を教えてください。
用語|SSH/ターミナル
ターミナルは、文字だけでコンピュータに命令する画面。黒い画面にキーボードで打つあれ。
SSH は、手元の機械から、別の場所にあるコンピュータへ安全に入って操作する仕組み。
どちらも「プログラミング」ではない。それでも、これが無いと何も始まらない。
文字化けと、その先
サーバーに入れた。スクリプトを置いた。動かした。
文字化けしています。直し方教えてください。
UTF-8にするのはどこですか?
すでにUTF-8になってますが。。。
この「。。。」に、当時の気分が全部入っている。言われたとおりにした。なっている。それでも直らない。
そしてエラーが来る。
エラーが出ました
これはうまくいったのでしょうか? 以下テキスト整形のログです
`Traceback (most recent call last):`
貼るしかない。意味が分からないものは、意味が分からないまま貼るしかない。この3ヶ月、私がやり続けたのは半分これである。
そして、文字が出た
何度目かのやり取りのあと、私はこう打っている。
素晴らしい!きれいなテキストができました!
喋った言葉が、整った日本語になって画面に出た。
自分のサーバーで、自分の取ったAPIキーで、自分の声が。感嘆符が2つ付いているのは、この3ヶ月の記録の中でも数えるほどしかない。

ここまでで越えたものを並べると、こうなる。
APIキーの取り方
サーバーを置く場所
そこに入る方法
文字コード
意味の分からないエラー
プログラミングは、1つも無い。
「アプリを作る」と聞いて多くの人が想像するのは、コードを書くところだと思う。実際に人が諦めるのは、その手前である。私はたまたま、この手前を越える相手をたまたま持っていた。それだけだった。
その日の夜に、もう次の不満が出ている
文字が出た。喜んだ。そして5分後には、次のことを言っている。
typelessのような音声入力システムにしたいです。またこのシステムによる出力テキストは生成日時毎にリスト化されて簡易なwebダッシュボードで確認できるようにしたいです
さらに、こう続けている。
何度も言いますがtypelessと同程度の使い勝手としてください
「何度も言いますが」。この時点でもう、私は同じことを何度も言っている。
基準は最初から本家だった。動いた、では足りない。置き換わらなければ意味がない。この感覚が、結局この3ヶ月と、その後の3週間を全部動かすことになる。
次回
ダッシュボードができた。日時ごとに並んで、過去の文章が見られる。便利になるはずだった。
その3日後、私はこう書いている。
ダッシュボードが非常に重たくてフリーズしてしまいます
ここから、2ヶ月にわたる戦いが始まる。相手はAIでも、コードでもない。同じ症状が、何度直しても戻ってくるという現象だった。
次回【1-2】「ダッシュボードが固まります!!!!」
