iOS18以降、iPhoneのボイスメモには、文字起こしの機能が追加されて、とても便利になりました。AI機能がどんどん強化されるので嬉しい限りです。しかし、残念ながら専門用語が多い議事録やインタビューなどの文字起こしに使うには荷が重いようです。そこで、バイブコーディングで高精度の文字起こしツールを作り、全自動での文字起こしに挑戦してみましょう。今回は、OpenAIのCodex CLIを利用してみます。

  • ボイスメモで録音した会議音声を全自動でテキスト化してみよう

    ボイスメモで録音した会議音声を全自動でテキスト化してみよう

OpenAI Codex CLIとは

OpenAIのCodex CLIは、OpenAIが提供しているAIコーディングエージェントをコマンドライン(ターミナル)上で操作できるツールです。自然言語を利用して、プログラムを開発したり、さまざまなタスクを実行できるので便利です。

なお、実行には、Node.jsが必要になります。Windowsを利用する場合は、WSL2経由で使う必要があります。本連載の第5回(こちら)で詳しく解説しています。

なお、ツール自体は、Rust製のコマンドラインツールとなっており、WindowsのWSL2またはmacOSでは、下記のコマンドを実行することでインストールできます。

# Windows WSL2 / macOS
npm install -g @openai/codex@latest
# あるいは、macOS
brew install codex

そして、以下のコマンドを実行すると、Codexを起動できます。なお、初回は、どの料金プランを利用するのか選択する画面が出ます。

codex

Codexを終了させるには「/quit」とタイプして[Enter]キーを押します。

プロジェクトを作ろう

それでは、最初にプロジェクトを作成しましょう。今回作成するツールの名前は、何のひねりもありませんが「mojiokosi」にしてみます。そこで、ターミナルで下記のコマンドを実行して、フォルダ「mojiokosi」を作成します。

mkdir mojiokosi
cd mojiokosi

続いて、codexコマンドを利用してプロジェクトを初期化しましょう。

codex "iPhoneで録音した長時間の音声ファイル(M4A形式)を10分ごとに区切って、OpenAIのSpeech to Text APIでテキストファイルに変換するツールを作成して"

すると、ツールの開発プランを立てて、Pythonのプログラムを開発し、ドキュメントのREADME.mdも作成してくれました。なんと、1分20秒でとりあえずすべてが完成です。

  • なんと…1分20秒で全てが完成した

    なんと…1分20秒で全てが完成した

なお、この時点で、README.mdを見ると、「ffmpeg」や「OpenAIのPythonパッケージ」が必要であり、使い方は、コマンドラインからどのように行うかという詳しい方法が記述されていました。

  • ツールの使い方を説明する詳しいREADMEも一緒に作成された

    ツールの使い方を説明する詳しいREADMEも一緒に作成された

環境のセットアップはCodexにやらせよう

さて、README.mdを確認してみると、結構セットアップが面倒そうな印象がありました。そこで、Codex CLIに次のように指示を与えてみました。

README.mdに従って、自動的に環境を整えてください。

すると、オープンソースの動画・音声の変換ツールである「ffmpeg」を自動的にPCにインストールし、Pythonの仮想環境(venv)を作成して、依存パッケージである「openai」をインストールしてくれました。

READMEに従ってコマンドを実行するのも、それほど面倒ではありませんが、コマンドの打ち間違いをすることもあります。そのため、自然言語で命令できるというのは、本当にストレスがなくて良いです。

  • 環境構築も全部Codexがやってくれた

    環境構築も全部Codexがやってくれた

さすがに課金情報の指定は手動でやることに

なお、Codexからの指示がすべて英語なので、途中で以下のように指示しました。

以後、日本語で教えてください

すると、「了解しました。今後は日本語でご案内します。」と素直に答えて、日本語で案内するようになりました。

  • APIキーを設定するようにと案内があった

    APIキーを設定するようにと案内があった

環境構築の最後で、課金のためのAPIキーは自分で設定するようにと表示されました。OpenAIのAPIキーは、こちらのページで発行できます。OpenAIの開発者アカウントが必要になりますので、それも自分で手続きが必要です。

将来的には、このあたりの手続きもAIが自分でやってくれると助かるのにと思いますが…クレジットカードの登録と、最低限のクレジット購入が必要になりますので慎重に作業しましょう。OpenAIで有料のAPIを使うには、Billingで最低5ドルの課金が必要になります。

APIキーを設定ファイルに記述しよう

そして、APIキーを生成したら、その設定も、Codexにお願いして設定してもらいたいのですが、さすがに認証情報をAIに直接与えるのは、セキュリティ的に問題がありますので、ここで手動のやり方を紹介します。

WindowsのWSL2を使っている場合には、Bashシェルがデフォルトです。「~/.bashrc」というファイルに対してAPIキーを設定します。macOSの場合は、デフォルトシェルがZshです。「~/.zshrc」というファイルに下記のような一行を書き加えます。

# シェルの設定ファイルに以下を記述
export OPENAI_API_KEY=(ここに取得したAPIキーを記述)

そして、設定ファイルを保存したら、設定ファイルを反映させましょう。Codex CLIが起動したままだと設定が反映されないので、一度ここで「/quit」でCodexを終了します。

その後、WSLの場合はターミナルで「source ~/.bashrc」を実行、macOSなら「source ~/.zshrc」と実行して設定を反映しましょう。

最後に、Codexを前回の続きで実行しましょう。なお、「/quit」コマンドでCodexを終了すると、この続きを行うにはどうしたらよいのかについての案内があるはずです。筆者のターミナルでは、下記のように記述されていました。

To continue this session, run codex resume 0199e0ed-5f24-7791-b1f4-1c16d82d166d

そうなんです。そこで、ターミナルに下記のように入力すると、前回の続きを起動してくれました。(「codex resume」以降のハッシュ文字列は毎回異なります。)

codex resume 0199e0ed-5f24-7791-b1f4-1c16d82d166d

音声ファイルを用意したらAIにコマンドを叩いてもらおう

ここで、iPhoneのボイスメモで長時間の会議の録音(音声ファイル)をPCに転送しました。そして、プロジェクトのフォルダ「mojiokosi」に「test.m4a」という名前でコピーしました。

Codexに自動的にプログラムを実行してもらいましょう。Codexの入力欄に以下の指示を入力しました。

カレントディレクトリに「test.m4a」をコピーしました。
先ほど作成したツールを利用して、このファイルを文字起こしして「test.txt」に保存してください。

すると、ネットワークにアクセスしてよいかと尋ねられるので「Yes」を選択すると、今回作成したプログラムを実行するコマンドを組み立てて、音声の文字起こしを実行してくれました。

  • 音声ファイルをコピーして、文字起こしを実行してもらった

    音声ファイルをコピーして、文字起こしを実行してもらった

なぜか1回目は、設定ファイルが読み込めないというエラーが出たため、プログラムに問題があるのかもと思ったのですが、念のためもう一度実行してみたところ、70分にも及ぶ会議を文字起こしして、テキストファイル「test.txt」に保存してくれました。

  • 70分に及ぶ会議を綺麗にテキスト化してくれた

    70分に及ぶ会議を綺麗にテキスト化してくれた

iPhoneの文字起こしと比較してみると一目瞭然の精度

なお、今回試した音声ファイルですが、BGMにポップミュージックが流れているノイズの多い環境で行った会議の録音を文字起こししてみました。会議の中で筆者が語ったバイブコーディングの使いどころに関するコメント部分を拾ってみました。

iPhoneのボイスメモの文字起こし機能を使ってテキストは、次のように、壊れたところが多くありました。

…それもう一つは AIと共同して作ってくっていう感じで、 AIにこんなのがこういうのを作ろうと思って、そこはまバイブコーディント似てはいるんだけれども、その主体がプログラムになって、補助 A Iにしてもらうってい 2つ目
その場合はもう主にプログラムを変えていくのは、人間なんだけど、その人間か人間がこう作ってる。その途中を、ちょっと A Iに保管してもらうっていう方法
決まりきったプログラムっていうのは、結構書くプログラム公書いたら、次こうなこれを書くって結構決まってるのでプログラマーはその必要なその全部を A Iに任せるんじゃなくってほとんどプログラマーが人間が書いてくるんだけれども…

上記の部分を、今回のツールを使って文字起こししたものは、次のようなものになりました。

…それでもう1つは、AIと協業して作っていくっていう感じで、AIにこんなのが、こういうのを作ろうと思って、そこはバイブコーディングに手はいるんだけれども、主体がプログラマーになって、補助をAIにしてもらうというのが2つ目。
その場合は主にプログラムを書いていくのは人間なんだけど、人間が作っている途中をちょっとAIに補完してもらうっていう方法。
決まりきったプログラムっていうのは結構数、プログラムこう書いたら次こうな、これを書くっていうのは結構決まっているので、プログラマーが必要な全部をAIに任せるんじゃなくて、ほとんどプログラマーが人間が書いていくんだけれども…

iPhoneの文字起こしテキストでは、ほとんど意味が分からなかった部分でも、OpenAIのSpeech to Text APIを使ったものは、それなりに意味が分かる文章になっていました。

ノイズが多い環境なのと口語調なので、さすがに文章としておかしいところがあるのですが、許容範囲というところです。さすが有料のAPIを使っただけあります。

まとめ

以上、今回は、OpenAI Codex CLIを利用して、文字起こしツールを作り、実際に音声ファイルを与えて、テキストファイルに保存してもらいました。有料APIを使う場合、APIキーの設定こそ手動でする必要がありましたが、環境構築からコマンドの実行まで、ほとんどの部分を、Codexに任せることができました。

今回、Codex CLIのようなコーディングエージェントを使うと、コマンドラインツールを使うハードルがかなり下がるというメリットにも気づくことができました。ターミナルでコマンドを入力するのが面倒だと感じている人でも、エージェントを使えば、自然言語で指示を与えることができるというのは大きなメリットです。

自由型プログラマー。くじらはんどにて、プログラミングの楽しさを伝える活動をしている。代表作に、日本語プログラミング言語「なでしこ」 、テキスト音楽「サクラ」など。2001年オンラインソフト大賞入賞、2004年度未踏ユース スーパークリエータ認定、2010年 OSS貢献者章受賞。これまで50冊以上の技術書を執筆した。直近では、「大規模言語モデルを使いこなすためのプロンプトエンジニアリングの教科書(マイナビ出版)」「Pythonでつくるデスクトップアプリ(ソシム)」「実践力を身につける Pythonの教科書 第2版」「シゴトがはかどる Python自動処理の教科書(マイナビ出版)」など。