見出し画像

OpenAIの新モデルgpt-4o-audio-preview:テキストを超えたAI体験

はじめに

OpenAIが提供する最新の言語モデルgpt-4o-audio-preview-2024-10-01は、テキストと画像生成に加え、音声生成と音声入力に対応した革新的なモデルです。音声入力はテキストのみよりも豊かなデータを含み、モデルは声のトーン、抑揚、その他のニュアンスを検出できます。本記事では、gpt-4o-audio-preview-2024-10-01の機能、使い方、応用例、注意点などを詳しく解説します。

gpt-4o-audio-preview-2024-10-01でできること

gpt-4o-audio-preview-2024-10-01の音声機能を利用することで、以下のことが実現できます。

  • テキストの内容を音声で要約 (テキスト入力、音声出力)

  • 録音の音声から感情分析 (音声入力、テキスト出力)

  • モデルとの非同期音声対話 (音声入力、音声出力)

シンプルな音声テキスト変換やテキスト音声変換が必要な場合は、OpenAIが提供するSTT (Speech-to-Text) モデルとTTS (Text-to-Speech) モデルの方がパフォーマンスとコスト効率の面で優れています。gpt-4o-audio-preview-2024-10-01は、モデルからの動的なコンテンツ生成を必要とするタスクに最適です。

gpt-4o-audio-preview-2024-10-01の使い方

音声生成や音声入力には、REST APIのチャット補完エンドポイントを使用します。任意のHTTPクライアントからREST APIを直接使用することも、OpenAIの公式SDKを利用することもできます。

例:人間のような音声応答を生成

import { writeFileSync } from "node:fs";
import OpenAI from "openai";

const openai = new OpenAI();

// プロンプトに対する音声応答を生成
const response = await openai.chat.completions.create({
  model: "gpt-4o-audio-preview-2024-10-01",
  modalities: ["text", "audio"],
  audio: { voice: "alloy", format: "wav" },
  messages: [
    {
      role: "user",
      content: "ゴールデンレトリバーは良い家庭犬ですか?" 
    }
  ]
});

// 返されたデータを確認
console.log(response.choices[0]);

// 音声データをファイルに書き込む
writeFileSync(
  "dog.wav",
  Buffer.from(response.choices[0].message.audio.data, 'base64'),
  { encoding: "utf-8" }
);
    

content_copy Use code with caution.JavaScript

複数ターン会話

モデルからの音声出力を複数ターン会話の入力として使用するには、音声生成の応答データに含まれる生成IDが必要です。以下は、/chat/completionsから受信するメッセージのJSONデータ構造の例です。

{
  "index": 0,
  "message": {
    "role": "assistant",
    "content": null,
    "refusal": null,
    "audio": {
      "id": "audio_abc123",
      "expires_at": 1729018505,
      "data": "<bytes omitted>",
      "transcript": "はい、ゴールデンレトリバーは...として知られています。"
    }
  },
  "finish_reason": "stop"
}
    

content_copy Use code with caution.Json

上記のmessage.audio.idの値は、新しい/chat/completionsリクエストのアシスタントメッセージで使用できる識別子を提供します。

よくある質問

Q: gpt-4o-audio-preview-2024-10-01でサポートされているモダリティは?

A: 現時点では、音声出力または音声入力のいずれかを使用する必要があります。許容される入力と出力の組み合わせは次のとおりです。

  • テキスト入力 → テキスト + 音声出力

  • 音声入力 → テキスト + 音声出力

  • 音声入力 → テキスト出力

  • テキスト + 音声入力 → テキスト + 音声出力

  • テキスト + 音声入力 → テキスト出力

Q: Chat Completionsの音声入力とRealtime APIの違いは?

A: 基礎となるGPT-4o音声モデルは全く同じです。Realtime APIは、同じモデルをより低いレイテンシで動作させます。

Q: モデルへの音声入力はトークン数でどのように考えればよいですか?

A: 現在、より良いツールを公開するために取り組んでいますが、おおよそ1時間の音声入力は128kトークンに相当します。これは、現在このモデルでサポートされている最大コンテキストウィンドウです。

Q: 受信する出力モダリティをどのように制御すればよいですか?

A: 現在、モデルはプログラム的にmodalities = ["text", "audio"]のみを許可しています。将来的には、このパラメータでより多くの制御が可能になる予定です。

Q: ツール/関数呼び出しはどのように機能しますか?

A: ツール(および関数)呼び出しは、Chat Completionsの他のモデルと同じように機能します。

次のステップ

音声出力の生成方法と音声入力の送信方法を理解したところで、他に習得したいテクニックがいくつかあります。

  • テキスト音声変換:特殊なモデルを使用してテキストを音声に変換します。

  • 音声テキスト変換:特殊なモデルを使用して、音声が含まれる音声ファイルをテキストに変換します。

  • Realtime API:WebSocketを介してモデルにプロンプトを送信するためにRealtime APIを使用する方法を学びます。

まとめ

gpt-4o-audio-preview-2024-10-01は、音声生成と音声入力機能により、AIとのインタラクションをより自然で豊かなものにする可能性を秘めています。今後の発展に期待が高まります。


Difyといえばそら☁️ 自動化といえばそら☁️

現在は生成AIエンジニアをやっております。
人の役に立つものを作りたいという、
こどもの頃からの夢を果たします。

毎日見ると非エンジニアでも学べるDifyを中心とした最新のAI情報や、自動化効率化術を発信してるので今すぐフォローしましょう。


この記事が気に入ったらサポートをしてみませんか?