1. スピーチモデルの概要

1.1. OpenAIのTTSおよびSTTモデルの紹介

テキスト・ツー・スピーチ(TTS)モデル

OpenAIのTTSモデルは、テキストデータを音声出力に変換できます。このプロセスには、テキストの分析、音声合成アルゴリズムの適用、および音質の調整が含まれます。これにより、コンピューターが任意の書かれたテキストを読み上げることが可能となり、コンテンツがより理解しやすくアクセスしやすくなります。TTSは、視覚障害を持つ人、運転手、または音声で情報を受け取ることを好む人などにとって重要な技術です。

スピーチ・トゥ・テキスト(STT)モデル

TTSに対応するように、STTモデルは音声情報を書き込まれたテキストに変換できます。元のオーディオ入力を処理する際、STTシステムはまず音声検出を行い、次に特徴抽出を行います。その後、音響および言語モデルを使用してオーディオ信号を語彙にマッピングし、最終的にテキスト出力を生成します。STT技術は、音声認識、会議の書き起こし、リアルタイムの字幕生成など、さまざまなシナリオで広く使用されています。

1.2. アプリケーションシナリオ

  • ブログの音読
  • 多言語音声生成

3. テキスト・ツー・スピーチAPI

3.1. クイックスタート

このセクションでは、curlコマンドとPythonクライアントを使用してテキストを簡単に音声に変換する方法を示します。開発者であっても非技術ユーザーであっても、APIリクエストを送信するだけで簡単に音声ファイルを生成できます。

Curlを使用したリクエストの送信

curlコマンドラインツールを使用して音声を生成するには、以下の手順に従ってください:

  1. システムにcurlがインストールされており、有効なOpenAI APIキーを持っていることを確認します。
  2. 次のcurlコマンドを使用してテキストを音声に変換します:
curl https://api.openai.com/v1/audio/speech \
  -H "Authorization: Bearer $OPENAI_API_KE
### 3.4. リアルタイムオーディオストリーミング機能

リアルタイムアプリケーションのニーズに対応するため、当社のAPIはリアルタイムオーディオストリーミングをサポートしています。以下はPythonの例で、リアルタイムオーディオストリーミングを実装する方法です:

```python
from openai import OpenAI

client = OpenAI()

response = client.audio.speech.create(
    model="tts-1",
    voice="alloy",
    input="Hello world! This is a streaming test.",
)

response.stream_to_file("output.mp3")

4. 音声からテキストへのAPI

4.1. クイックスタート

このセクションでは、OpenAIの音声からテキストへのAPIの機能を主に紹介します。

まず、有効なOpenAI APIキーが必要であり、音声ファイルを準備する必要があります。

curlコマンドを使用して、音声ファイルを含むPOSTリクエストを送信できます。OPENAI_API_KEYを自分のAPIキーに置き換え、正しいファイルパスを設定してください。

curl --request POST \
  --url https://api.openai.com/v1/audio/transcriptions \
  --header 'Authorization: Bearer OPENAI_API_KEY' \
  --header 'Content-Type: multipart/form-data' \
  --form file=@/path/to/your/audio/file.mp3 \
  --form model=whisper-1

上記のコマンドを実行すると、音声のテキスト化情報を含むJSON形式のレスポンスを受け取ります。

例:

{
  "text": "あなたが持っている最も狂った考えを想像してみてください。そして、それが100、1,000倍大きくなった場合にどのように拡大されるかについて興味があります。..."
}

4.2. サポートされているファイルフォーマットとサイズ

このAPIはさまざまな一般的な音声ファイルフォーマットをサポートし、さまざまなシナリオでの異なるニーズに対応しています。サポートされているファイルフォーマットは、mp3mp4mpegmpgam4awavwebmなどが含まれます。これにより、ユーザーはさまざまなソースからの音声ファイルを簡単に処理できます。

ファイルサイズに関して、現在のAPIには25MBを超えないという制限があります。つまり、音声ファイルが25MBより大きい場合は、25MBより小さい複数のセグメントに分割するか、より効率的な圧縮形式を使用する必要があります。たとえば、mp3opusの形式は通常、効率的な圧縮を提供し、ファイルサイズを犠牲にせずにオーディオ品質を大幅に低下させることができます。

25MBより大きいファイルがある場合は、PythonのPyDubライブラリを使用して、音声をセグメントに分割することを検討できます。

from pydub import AudioSegment

audio_file = AudioSegment.from_file("your_large_audio_file.mp3")

interval = 10 * 60 * 1000  # 10分

chunks = make_chunks(audio_file, interval)

for i, chunk in enumerate(chunks):
    chunk_name = f"audio_chunk{i}.mp3"
    chunk.export(chunk_name, format="mp3")

上記のコードでは、make_chunks関数が大きな音声ファイルを10分ごとの複数の音声セグメントに分割します。これらのセグメントは、APIで必要とされるファイルサイズ制限内に収まっており、OpenAI APIに別々にアップロードできます。

PyDubは音声ファイルを簡単に処理できる手段を提供しますが、サードパーティのソフトウェアを使用する際はセキュリティと安定性に特に注意することをお勧めします。OpenAIはサードパーティのソフトウェアに対して保証を提供しません。