Fish Audio: Transcribe 1
Transcribe 1は、短い音声録音を、自動言語検出と任意の単語単位タイムスタンプ付きでテキストに変換します。文字起こしは音声メモ、検索できるクリップ、字幕の準備に使えます。時刻付きの区間と、読みやすい全文は分けて保持してください。
モデルについて
この説明はモデルの機能を紹介するものです。Ailootで利用できる入力、出力、オプションは、選択したメソッドごとに以下に記載されています。
Transcribe 1は、短い録音向けのFish Audioの汎用音声認識モデルです。音声ファイルを受け取り、認識した言葉をテキストとして返します。録音の長さ、任意の時刻付き区間、判明した場合の言語情報も含まれます。短い音声メモ、口頭の指示、録音の抜粋、読みやすいテキスト表現が必要な音声クリップに便利です。
音声メモのワークフロー例では、録音、文字起こし全文、元のクリップの識別子をまとめて保持します。後続のアプリケーション処理で、発話の原資料を残しながら、テキストの検索、メモの整理、要約の作成ができます。コマンドの場合、文字起こしは認識した言葉をアプリケーションに渡します。実際の操作は別の解釈と実行の段階です。インタビューの抜粋では、引用を正しい位置で照合できるよう、音声全体におけるクリップの位置を記録してください。
提供元は、WAV、MP3、M4A/MP4を含むAAC、FLAC、OpusまたはVorbisを格納したOggに対応しています。ブラウザーで録音したWebMは、このモデルではOgg/Opus、MP3、WAVのいずれかに変換してください。Proのドキュメントには、追加のコンテナーへのネイティブ対応が記載されています。1リクエストにつき音声ファイルを1つ渡します。基本モデルの記載されたリクエスト上限は50 MiBで、MP3とOpusのファイルは25 MiB未満にします。ファイルサイズと録音時間は別の条件です。圧縮ファイルがアップロード枠に収まっても、処理に時間がかかりすぎる場合があります。
Transcribe 1は短い録音向けです。提供元は数分を超える音声にはProを推奨しており、基本モデルで長い録音を処理すると、処理時間の上限を超えて失敗する可能性があります。長い資料を短いクリップに分けて文字起こしする場合は、各クリップの開始オフセットを保持し、結果を結合する前に、返された文字起こしがクリップ全体を網羅しているか確認します。区間内の時刻に元のオフセットを加え、録音全体の正しい位置へ移動できるようにします。基本モデルの案内を、Proの別の60分という枠と混同してはいけません。
提供元の応答には、text、duration、segmentsが含まれます。長さは秒単位で、読みやすい文字起こし全文をクリップの主要な文面として保持します。タイムスタンプは任意です。提供元APIではignore_timestampsの既定値はtrueで、falseを指定すると、text、start、endを含む秒単位の単語別区間を要求します。アラインメントの要求には追加の処理時間がかかります。segmentsの配列が空でも、時刻情報を省略した、発話がない、アラインメントが一時的に利用できないなどの可能性があり、文字起こし全文まで空だと即断してはいけません。
区間は通常は単語単位ですが、中国語と日本語では1文字または数文字のことがあります。区間のテキストは句読点を省き、全文と異なる形に数値などを正規化する場合もあります。読みやすい応答の文字単位の複製ではありません。開始時刻と終了時刻が同じ区間もあります。区間は録音内の位置検索や時刻に合わせた表示に使い、文面と句読点が重要な場合は全文を使います。成果物では、この2つの表現を分けて保持してください。
任意の言語ヒントを指定してもしなくても、言語は自動検出されます。提供元はヒントに小文字のISO 639-1コードを指定し、判明した場合はアプリケーション処理用の言語コードと表示用の言語名を返すと説明しています。録音中に言語が切り替わっても、応答はすべての言語ではなく1つの言語を報告します。文字起こしを翻訳処理とみなさず、原語の文面と利用可能な言語メタデータを結果に保持してください。
字幕のワークフローでは、1語ずつ表示せず、連続する時刻付き区間を読みやすい字幕キューにまとめます。元のクリップに結び付いたSRTまたはWebVTTファイルを作り、休止に合わせてキューを区切り、画面に表示して読み切れる量の文字を設定すると実用的です。時刻の欠落を確認し、各キューの終了が開始より後になるようにします。字幕のグループ化とファイル整形は、返されたアラインメントを利用するアプリケーション側の処理であり、表示方法はプレーヤーと視聴者に合わせてください。
Transcribe 1に記載された制御は、音声、言語ヒント、タイムスタンプの選択です。Proの話者マーカー、構造化された話者ターン、感情イベントの制御、話者数ヒントは別の機能であり、この基本モデルの公開された応答仕様には含まれません。処理前に必要な成果物を決めます。メモなら読みやすい平文、再生位置への移動や字幕ならテキストとアラインメントです。クリップ識別子、文字起こし、取得できた時刻情報を残すことで、次のアプリケーション処理に役立つ結果になります。
Ailoot Ultra · 文字起こし POST /v1/audio/transcriptions fish-audio/transcribe-1
fish-audio/transcribe-1はじめに
Transcribe 1は、短い音声録音を、自動言語検出と任意の単語単位タイムスタンプ付きでテキストに変換します。文字起こしは音声メモ、検索できるクリップ、字幕の準備に使えます。時刻付きの区間と、読みやすい全文は分けて保持してください。
- 対応する入力
- 音声
- 結果
- テキスト
Ailootで利用可能 · 入力とメソッド
Ailoot Ultra · 文字起こし POST /v1/audio/transcriptions
- 入力の種類
audio- 出力の種類
text
| フィールド | 種類 | 要件 | 値と制限 | デフォルト |
|---|---|---|---|---|
フィールドmodel | 種類string | 要件必須 | 値と制限 fish-audio/transcribe-1 | デフォルト— |
フィールドinput_audio | 種類object | 要件必須 | 値と制限 | デフォルト— |
メソッドのパラメータとライフサイクル
| パラメータ | 仕様 |
|---|---|
パラメータcontent_type | 仕様application/json |
パラメータrequired | 仕様model, input_audio |
パラメータmaterial_types | 仕様audio |
パラメータmaterial_conditions | 仕様この例では、実際の空でないPCM WAVファイルを読み込み、ファイル全体のバイト列をbase64にエンコードして、input_audio.formatをwavとして送信します。 |
ライフサイクル: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · 既存の所有メディアレコードにある正確なtask_id
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
料金
料金情報はリクエストの機能を追加しません。対応するパラメーターは選択したメソッドに記載されています。
- 高速モード
- 未指定 高速モードが選択されている場合
- Flex モード
- 未指定 flex モードが選択されている場合
- 最大推論量
- 未指定 推論量が最大で、調整に既定値(default)を使用する場合
Ailootの料金
設定別の価格
各料金を表示された条件と照合してください。選択肢となる設定の各組には、いずれか1つの料金を適用します。
| 設定 | 料金表 | 課金単位 | 料金 |
|---|---|---|---|
| 設定基本トークン料金 | 料金表基本料金 | 課金単位— | 料金 入力 · 入力トークン — / 1K トークン 出力 · 出力トークン — / 1K トークン 入力 · キャッシュ読み取り — / 1K トークン 入力 · キャッシュ書き込み — / 1K トークン 入力 · キャッシュ書き込み、1時間 — / 1K トークン |
| 設定入力音声の秒 | 料金表— | 課金単位入力音声1秒あたり | 料金 入力 · 入力音声の秒 $0.0002 入力音声1秒あたり |
Ailootはリクエスト前に見積額を確保します。結果の取得後、実測使用量に基づいて最終料金を精算します。ストリーミング時の精算には最終の使用量記録を使用します。金額の確保と精算の仕組み →
リクエスト例
Ailoot Ultra · 文字起こし
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}"
export AILOOT_AUDIO_FILE
python3 - <<'PY_REQUEST'
import base64, io, json, os, wave
from pathlib import Path
audio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()
if not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):
raise SystemExit('Supply your actual PCM WAV audio file')
with wave.open(io.BytesIO(audio), 'rb') as recording:
if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:
raise SystemExit('Supply a nonempty PCM WAV recording')
request = {'model': 'fish-audio/transcribe-1', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}
Path('request.json').write_text(json.dumps(request, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o response.bin
# Retain the complete original response, headers and actual X-Client-Request-ID.
# Read existing owned records for recovery; do not resubmit an uncertain operation.
結果を受け取って保存
Ailoot Ultra · 文字起こし
元のレスポンス本文全体、ステータス、および転送されたヘッダー。このハンドラーは共通のJSON構造、テキストフィールド、タスクの外側の構造を追加しません。
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
完了した結果をすべて保存
返された完全なレスポンス、ファイル、コンテンツ部分をすべて保存してください。
レスポンスとヘッダーの全体、実際の出力すべて、最初に返された識別子、使用量フィールドすべてを保存してください。作成リクエストを再送せずに、元の操作を復旧してください。
元のレスポンスを確認する場合
実際のX-Client-Request-IDと完全なレスポンスを保持してください。元の所有アセットと、その正確な署名付きコンテンツURLを読み取ってください。結果が不確かな作成リクエストは、決して再送信しないでください。
レスポンスのフィールド
| フィールド | 種類 |
|---|---|
フィールドtext (when present) | 種類 |
フィールドusage (when present) | 種類 |
エラーと次の手順
| レスポンス | 条件 | 次の手順 |
|---|---|---|
レスポンス400 · invalid_request_error | 条件JSON本文、または明示された正規モデルIDが無効です。 | 次の手順レスポンスを保持し、指摘されたリクエストフィールドを修正してください。 |
レスポンス401 · authentication_error | 条件Ailoot APIキーが無効です。 | 次の手順利用権限のあるAiloot APIキーを使用してください。 |
レスポンス403 · permission_error | 条件このキーのグループでは、このメソッドの利用が許可されていません。 | 次の手順返されたエラーの詳細を保持してください。 |
レスポンス404 · not_found_error | 条件選択したメソッドには、利用が許可されたルートがありません。 | 次の手順返されたエラーの詳細を保持してください。 |
レスポンス422 · price_unavailable | 条件受諾済みの料金体系に必要な入力量、またはその上限を取得できません。 | 次の手順レスポンスを保持し、受諾済みの料金体系で必要とされる入力表現を使用してください。 |
レスポンス503 · | 条件必要な保存領域、ルート、メソッド料金、または料金の仮押さえを利用できません。 | 次の手順元のレスポンス全体を保持してください。料金の仮押さえ状態が不明でも、再送信が認められるわけではありません。 |
レスポンス502 · server_error | 条件元の結果、使用量、または精算を確認する必要があります。 | 次の手順実際のリクエストIDと元のレスポンスを保持してください。既存の所有レコードを読み取ってください。作成リクエストを再送信しないでください。 |
エイリアス
モデルのエイリアス
Ailoot Ultra fish-audio/transcribe-1
メソッドパスのエイリアス
上記に表示されたメソッドパスを使用してください。
関連する呼び出し用ID
FAQ · Fish Audio: Transcribe 1
- 利用できる入力と結果は何ですか?
POST /v1/audio/transcriptions·fish-audio/transcribe-1:audio→text- リクエストはどの項目を使用しますか?
POST /v1/audio/transcriptions·fish-audio/transcribe-1:model,input_audio