世界を動かす技術を、日本語で。

OpenAIは分単位で料金が発生するので、時間を短くしましょう

概要

OpenAIの音声文字起こしは、音声を2倍速や3倍速にして送信することで コストと時間を大幅に削減 可能。 ffmpeg などのツールを使い、音声を高速化しても 精度の低下は最小限 に抑えられる。 gpt-4o-transcribewhisper-1 モデルの料金体系を理解し、効率的なワークフローを構築。 2倍速・3倍速が コスト削減と品質維持の最適解、4倍速は精度が著しく低下。 具体的なスクリプト例、コスト比較、精度検証 も紹介。

OpenAI音声文字起こしを高速・低コスト化する裏技

  • 音声データをffmpegで2倍速または3倍速 に変換し、OpenAI APIに送信する手法

    • yt-dlp でYouTubeなどから音声抽出
    • ffmpeg で速度変換・低ビットレート化
    • curl でOpenAIへAPIリクエスト
    • llm で要約生成
  • スクリプト例

    • yt-dlp -f 'bestaudio[ext=m4a]' --extract-audio --audio-format m4a -o 'video-audio.m4a' "[動画URL]"
    • ffmpeg -i "video-audio.m4a" -filter:a "atempo=3.0" -ac 1 -b:a 64k video-audio-3x.mp3
    • curl --request POST ... --form [email protected] ... > video-transcript.txt
    • cat video-transcript.txt | llm --system "Summarize the main points of this talk."
  • 高速化のメリット

    • 音声の長さが短縮 されるため、APIの トークン消費量・処理時間が減少
    • 品質低下は最小限 で、2倍速・3倍速なら十分実用的
    • gpt-4o-transcribeモデル は25分制限があるが、高速化で長尺音声も対応可能
  • コスト比較(40分音声の場合)

    • 1x(元の速度):2372秒、トークン超過で不可
    • 2x:1186秒、約$0.09
    • 3x:791秒、約$0.07
    • 3倍速で約33%コスト削減、出力トークン数は変化なし
  • 精度検証

    • 2倍速・3倍速は内容把握に十分な品質
    • 4倍速は認識精度が大幅に低下
    • 発話速度がもともと速い場合は注意

なぜこの手法が有効なのか

  • 音声高速化は人間の知覚やAIモデルの認識能力に依存

    • 人間もAIも 細かな欠落を補完 できる
    • 画像圧縮や誤字許容と同様、 情報量を減らしても本質は維持
  • OpenAIの料金体系

    • 入力音声トークン数(長さ)と出力テキストトークン数 で課金
    • 音声を短くする=トークン消費を抑制=コスト削減
    • whisper-1は 1分あたり$0.006、gpt-4o-transcribeは トークン単位課金

実践ワークフロー

  • YouTube動画の文字起こし

    • 字幕自動取得ができない場合、 音声抽出→高速化→API送信→要約 が最速
    • ローカルでwhisperを使う場合はバッテリー消費・処理速度に注意
  • APIの制限対応

    • gpt-4o-transcribeの 25分制限 は高速化で回避可能
    • ffmpegのatempo フィルターで自在に音声速度調整

注意点・限界

  • 4倍速以上は精度が著しく低下
  • 話者が早口の場合は2倍速でも認識率低下の可能性
  • 要約や精度検証はスポットチェック推奨
  • トークン計算やコスト見積もりはOpenAIの最新情報を参照

まとめ

  • 音声を2倍速・3倍速にしてOpenAIに送信することで、コスト・時間を大幅削減
  • 品質低下は最小限、2倍速・3倍速が最適
  • API制限回避や長尺音声対応にも有効
  • コスト削減を重視するなら必須テクニック

TL;DR

  • OpenAIの音声文字起こしは音声長さやトークン数で課金
  • ffmpegで音声を2倍速・3倍速にすればコスト・時間を削減
  • 品質はほぼ維持、4倍速は非推奨
  • コスト削減・効率化に最適な裏技

お問い合わせ・フィードバック

  • 計算ミスやご質問、より詳細な比較情報の共有歓迎
  • この記事が役立った場合や仕事依頼もお気軽にご連絡を

Hackerたちの意見

40分のトークをOpenAIのトランスクリプションAPIで要約しようとしたんだけど、長すぎたんだよね。だから、ffmpegを使って25分以内に収まるように早くしたら、結構うまくいったよ(最大3倍速まで)。しかも安くて早かったから、これについて書いてみた。面白いトリックだと思ったから、シェアする価値があるかなって。フルスクリプトとコストの内訳もあるよ。

静かにしておいて、OpenAIより安いトランスクリプションビジネスを始めればよかったのに :)

ジェミニ2.0以前のバージョンで使えた似たようなトリックがあったんだ。画像に258トークンの一律料金がかかるんだけど、実際には258トークン以上のテキストを画像に入れられて、それを使って割引を受けられたんだよね!

スキミングとちゃんと読むことの違いについて。あのトークのトランスクリプトと要約を読んだんだけど、まあまあだったけど面白くなかったから、すぐに次に進んじゃった。後でYouTubeにアップされてるのを見つけて、電車の中だったから普通の速度で全部見たんだ。そしたら、いろんなアイデアや考え、決断が浮かんできた。これって他のことでもよくあるんだよね。カンファレンスのトークを生で見るのは、オンラインで他のことに気を取られながら見るよりずっと役に立つ。オンラインで見るのは、要約を読むよりもまた役に立つ。何かを深く考えるために散歩するのは、10分で「解決」して忘れるよりもいい。考えるには、ゆっくりの方がいいことが多いね。

これ、マジでびっくりだわ。私も多くのハッカーと同じように、学校が嫌いだったのは、みんなに一律の知識を押し付けてきたからで、今やそれを生活のあらゆる面でお金を払って手に入れてるなんて。読書は楽しいし、講義やトークを見てピースがはまるのを感じるのは最高だよね。物事の意味を考えるのは、確かに私たち人間を定義するものだと思う。こんな愚かさに向かって進んでるなんて理解できない。これが何を生み出すのか、みんながどうしてこんなに盲目になれるのか、全然わからない。

まあ、あなたの言ってることには完全に同意だよ。特にトークに関しては、提示される生の内容やアイデアよりも、それが引き起こす周辺のアイデアやインスピレーションの方が重要だと思う。世の中には本当にたくさんのコンテンツがあるし、文脈が全てだよね。もしそのリンクをシェアした人が具体的なアイデアや考えを先に提示していたら、時間をかけて見てみようと思ったかもしれない。でも、受け取った文脈では、追加の情報もないただのリンクだったから、何に反応するのかを知るために「要点」だけが欲しかったんだ。この場合、私にとっては価値があったよ。後で見たいかどうか決められるしね。あなたのコメントには興味をそそられたから、もしかしたら見るかも!「考えるにはスローペースがいい」という意見に++。

スローペースで考えることの価値を否定するつもりはないけど、トークやテーマに一度触れてから、もう一度(再視聴)して、もう少し深く考える時間を持つことにも価値があるんじゃないかな。

スピードなのか、それとも音声と映像から得られる追加情報なのか?魅力的なスピーカーなら、同じメッセージでも視聴覚形式の方がずっと効果的だよね。音声には内容の特定の部分に強調があって、文字起こしや要約には全く含まれていない部分もあるし。映像にはジェスチャーや表情のヒントもあって、ポイントを伝えるために使われることが多いよ。

働いてるところ、めっちゃ面白いよ。無駄に長いパワーポイントの会議ばっかりで、5分のメールで済む内容なのにね。

正確なの? > わからないよ、見てないから、笑。そこがポイントなんだよね。もしこの答えが不安にさせるなら、これから向かってる未来に備えておいて。ほんとに。これは素晴らしい仕事で、著者は私の不安を的確にまとめてる。

アンドレイのトークをトランスクリプションするのは、スピード的に最も難しいケースを選んじゃったね。彼の自然な話す速度は、普通の人の1.5倍以上なんだ。彼の話を聞くときは、YouTubeの速度を1倍に戻さないと、何が起こってるのかついていけないよ。OpenAIの時間をもっと活用するアイデアとして、無音を送らないようにしよう。例えば、ffmpeg -i video-audio.m4a \ -af "silenceremove=start_periods=1:start_duration=0:start_threshold=-50dB:\ stop_periods=-1:stop_duration=0.02:stop_threshold=-50dB,\ apad=pad_dur=0.02" \ -c:a aac -b:a 128k output_minpause.m4a -y を使うと、39分31秒のトークを31分34秒に短縮できるよ。20ms以上の無音(-50dBの閾値)を20msのポーズに置き換えるからね。投稿の趣旨に合わせて、入力ファイルが短くなったことだけを測定したから、短いバージョンでトランスクリプションの質は全く見てないよ。

おお、楽しそう!ここでffmpegの魔法がもっと使える気がしてたんだ。後で試してみるね、アイデアありがとう!

いや、そうでもないかな?彼がOSについてダラダラ喋ってて、みんながなんとなく感心してるトーク?

彼の自然な話すスピードは、普通の人の1.5倍以上だね。彼の話を聞くときは、YouTubeのスピードを1倍に戻さないと、何が起こってるのかついていけない人の一人だよ。音声ファイルで「どれくらい速く」話してるかを自動的に検出する方法があるのかな。主観的なもので、人によって話すペースは違うのは知ってるけど、OPのトリックが失敗するタイミングを知るのも面白いかも(彼らはx4で出力がダメになったって言ってたし、karpathyの場合はx2でそうなるかもね)。

大量にこれをやろうとしてる人には、OpenAIのWhisperをAPI経由で使う代わりに、Groq [0]を使うともっと安く済むよ: [0] https://groq.com/pricing/ Groqは、distil-large-v3で約$0.02/時間、whisper-large-v3-turboで約$0.04/時間だと思う。OpenAIは約$0.36/時間になるはず。私たちは、YouTubeにアップロードされた瞬間に地方政府の会議を自動で文字起こしするツールを使ってこれを内部でやってるよ。デフォルトでGroqを使ってるけど、時々Groqがエラーになるから、ReplicateとDeepgramのバックアップも追加したんだ。

面白いね!$0.02から$0.04の料金で最適化を探してるとは思わないけど、この「音声を速くする」トリックでさらに節約できるかも。 > 私たちは、YouTubeにアップロードされた瞬間に地方政府の会議を自動で文字起こしするツールを使ってこれを内部でやってるけど、最近はYouTubeが自動でやってくれるんじゃないの?

Chromeの拡張機能を作ったんだけど、ブラウザ内で音声をテキストに文字起こしする機能があるんだ。huggingface/transformers.jsを使って、OpenAIのWhisperモデルをWebGPUで動かしてる。完璧に動作するよ!ブラウザでWebGPUを使って無料でできることの例をリストにしたよ。 [0] 私が絶対にやりたくないのは、大統領のSNS投稿を聞いたり見たりすることだけど、一方で、時々すごくバカなことが言われて、SP500がセッション中に$60も上下することがあるんだ。この機能は毎分新しい投稿をチェックして、OCRで画像をテキストに変換し、動画の音声をローカルでテキストに文字起こしして、経済的に重要なことがあれば通知してくれるんだ。 [0] https://github.com/huggingface/transformers.js/tree/main/exa... [1] https://github.com/adam-s/doomberg-terminal

すごいね!

それ、めっちゃクールだね!でも、これって実質的にはモデルが対応してる16kHzの代わりに8kHzの音声を供給するのと同じじゃない?

いきなり本題に入るのがいいね…これ好き!もっと多くの著者がこのアプローチを採用してほしいな。多くの記事が「本題」に入る前にあちこち行ってしまうから。試してみたら、もしかしたら50%の著者が自分には「本題」がないことに気づくかも。

2.5倍とか3倍にしても大丈夫だと思うよ。