Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Node.js】OpenAI の API + 新モデル(gpt-4o-transcribe、gpt-4o-mini-transcribe)で音声認識

Last updated at Posted at 2025-03-23

はじめに

以下の記事の最後の部分に書いていた、OpenAI の新モデル(gpt-4o-transcribe、gpt-4o-mini-transcribe)を使った音声認識のお試しの話です。

●【Node.js】OpenAI の API + 新モデル(gpt-4o-mini-tts)で音声合成 - Qiita
 https://qiita.com/youtoy/items/a35f7907eaa4259e417e

2025-03-23_01-46-04.jpg

【余談】OpenAI のモデルに関連した音声認識を過去に試した話

過去に音声認識サービス・ライブラリなどを試してみて、記事を書いたりしたこともありました。

その中で OpenAI のモデルが関わるものでは、「MLX版の Whisper」や「Azure で提供されている Whisper」、他に「GitHub で公開されているバージョンの Whisper」を試して記事を書いたことがあります。

また、オンラインイベント関連の依頼をいただき、API版の Whisper のデモや利用時の音声ファイルの処理まわりの話をしたこともありました

実際に試す

公式の情報を確認する

実際に試していくために OpenAI公式の APIリファレンスでサンプルを確認してみます。

JavaScript のサンプル

以下の JavaScript のサンプルを見てみます。

Default というタブで示されている内容は、以下の通りです。

import fs from "fs";
import OpenAI from "openai";

const openai = new OpenAI();

async function main() {
  const transcription = await openai.audio.transcriptions.create({
    file: fs.createReadStream("audio.mp3"),
    model: "gpt-4o-transcribe",
  });

  console.log(transcription.text);
}
main();

ちなみに、それ以外のタブを選ぶことで、ストリーミングやタイムスタンプ付の処理を行う場合などのサンプルを見ることができます。

image.png

image.png

今回は「Default」の内容で進めていきます。

公式サンプルを用いた処理の実行

公式サンプルをベースに、お試しを進めます。

利用するライブラリ・APIキー

その際、以下の TypeScript・JavaScript用のライブラリを使います。

●openai - npm
 https://www.npmjs.com/package/openai

上記を npmコマンドでインストールして、APIキーは環境変数に設定します。
(Mac の zhs上で exportコマンドを使うやり方で、一時的にキーを設定しました)

利用する音声ファイル

今回利用する音声ファイルは、冒頭に掲載していた記事の中で用いていたものと同じものにします。

処理の実行と結果(gpt-4o-transcribe)

用いたコードは以下のとおりです。

公式サンプルとの違いは、音声ファイルの名前を変えたところくらいです。

import fs from "fs";
import OpenAI from "openai";

const openai = new OpenAI();

async function main() {
  const transcription = await openai.audio.transcriptions.create({
    file: fs.createReadStream("tests_jfk.flac"),
    model: "gpt-4o-transcribe",
  });

  console.log(transcription.text);
}
main();

上記を実行した結果を以下に示します。

2025-03-23_18-00-09.jpg

元の音声をテキストにしたものが得られたことを確認できました。

処理の実行と結果2(gpt-4o-mini-transcribe)

上記では、「gpt-4o-transcribe」を使っていましたが「gpt-4o-mini-transcribe」のほうも試してみます。

以下のとおり、先ほどのコードのモデルを指定していた部分のみ書きかえたものを用いました。

import fs from "fs";
import OpenAI from "openai";

const openai = new OpenAI();

async function main() {
  const transcription = await openai.audio.transcriptions.create({
    file: fs.createReadStream("tests_jfk.flac"),
    model: "gpt-4o-mini-transcribe",
  });

  console.log(transcription.text);
}
main();

これを実行した結果は、以下のとおりです。

2025-03-23_18-10-46.jpg

先ほど比べると、記号の部分で微妙な違いがありますが(※ 先ほどは「,」だった部分が、なぜか「:」や「−」になっている)、他は同じ内容が得られました。

利用履歴の確認

最後に、ダッシュボードの Usage のページで、API の利用履歴を確認してみました。

表示されていた内容は以下のとおりです。

2025-03-23_18-20-00.jpg

gpt-4o-transcribe、gpt-4o-mini-transcribe が表示されるカテゴリは、Audio系ではなく Chat Completionsになるようです。
(そのカテゴリ分けは、前回の記事の gpt-4o-mini-tts と同じでした)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

Qiita Conference 2025 will be held!: 4/23(wed) - 4/25(Fri)

Qiita Conference is the largest tech conference in Qiita!

Keynote Speaker

ymrl、Masanobu Naruse, Takeshi Kano, Junichi Ito, uhyo, Hiroshi Tokumaru, MinoDriven, Minorun, Hiroyuki Sakuraba, tenntenn, drken, konifar

View event details
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?