Fish Audio: Transcribe 1 Pro
Transcribe 1 Proは、最大60分の録音を話者マーカー付きのテキストへ変換し、任意で単語単位の時間情報も提供します。推定された感情や発声イベントの手掛かりを残し、インタビュー、会議、ポッドキャストの確認、検索、字幕の準備をしやすくします。
モデルについて
この説明はモデルの機能を紹介するものです。Ailootで利用できる入力、出力、オプションは、選択したメソッドごとに以下に記載されています。
Transcribe 1 Proは、短いクリップ、複数話者の会話、長い録音に対応するFish Audioの音声認識モデルです。録音音声を受け取り、任意の時間情報や構造化された話者ターンとともに文字起こしを返します。特徴は、テキスト内で話者の切り替わりを示すことと、感情や発声イベントの手掛かりを付けることです。単純な単語列よりも、録音の会話構造を多く残せます。
インタビュー、会議、ポッドキャストでは、再び登場する話者が同じ応答内で一貫したラベルを保持できるよう、会話全体を1つのファイルにまとめてください。有用な確認用成果物は、元の録音に結び付き、ターンを分けて表示し、引用を確かめるタイムスタンプを使える文字起こしです。要約やアクションリストは、その後のアプリケーション段階です。発話の原本を比較可能なままにするため、文字起こしとは分けてください。
メーカーは最大60分の録音を受け付け、MP3、Opus、AACなどの圧縮音声で長いファイルを処理する方法を説明しています。対応形式には、WAV、MP3、M4AまたはMP4に格納されたAAC、FLAC、OpusまたはVorbisのOgg、WebM/Matroska、MOVがあります。動画ファイルでは最初の音声トラックを使用します。AIFF、CAF、WMA、AMR、AC-3、ヘッダーのない生PCMには非対応です。リクエストごとに音声ファイルを1つ入力します。録音全体の文字起こしが終わってから結果が届き、長い録音では数分かかる場合があります。約0.08秒より短いクリップは拒否されます。
メーカーの応答は、全文、秒単位の録音時間、segments配列を含みます。Proは、<|speaker:0|>や<|speaker:1|>などの行内ラベルで話者の切り替わりを示します。ラベルは次のマーカーまで、後続のテキストに適用されます。これは1つの応答内の識別子であり、確認済みの名前や、リクエストをまたいで照合できる身元ではありません。文字起こしに話者マーカーがなければ、ガイドは単一話者の結果として扱います。最初のマーカーより前のテキストは、捨てずに最初のターンとともに保持してください。
単語単位のタイムスタンプは任意です。メーカーのリクエストではignore_timestampsの既定値はtrueで、falseにすると、テキストと秒単位の開始・終了時刻を持つsegmentsを要求します。セグメントは通常1単語で、中国語や日本語では1文字または数文字です。セグメントのテキストは、句読点、話者マーカー、イベントの手掛かりを省き、口述された値を全文とは異なる形に正規化することがあります。単語セグメントの開始・終了時刻が同じになる場合もあります。segments配列が空の場合、タイムスタンプを要求していない、発話が見つからない、時間情報が一時的に利用できない、などが考えられます。読みやすい表現には全文、位置合わせにはsegmentsを使い、両方の文字列が1文字ずつ一致すると想定しないでください。
diarizeの既定値はautoです。タイムスタンプを要求し、diarizeがfalseでない場合、Proはspeaker_turnsも返します。各ターンは話者ラベル、テキスト、開始・終了時刻を持ち、行内の話者マーカーを除き、句読点と保持された手掛かりを残します。単語の時間情報がない場合、ターン時刻が概算で録音全体を覆うことがあり、隣り合うターンが連続することや、重ならないことは保証されません。diarizeを無効にすると構造化ターンリストはなくなりますが、全文の話者マーカーは残ります。既知の話者数、または最小・最大数を指定すると、長い録音の話者分離を可能な範囲で誘導できます。正確な人数と人数の上下限は併用できず、diarizeを無効にした場合は人数のヒントを使えません。
感情や発声イベントの手掛かりは、[laughter]のような角括弧付きテキストとして、認識された発話の横に現れます。これは音声からの推定であり、文字起こしの前にユーザーが追加する単語ではありません。Proのtag_audio_eventsの既定値はtrueです。無効にすると、時間情報は変えずに、全文とターンのテキストから手掛かりを除きます。独立した感情フィールドや固定の感情列挙はありません。発言の声の様子が重要なら注釈付きの文字起こしを残し、後続の成果物が発話の言葉だけを必要とするなら、手掛かりのない版を使ってください。
言語は自動検出されます。任意の小文字のISO 639-1ヒントは、翻訳を強制したり、Proの文字起こしを変えたりしません。言語を判断できない場合、返される言語コードは、音声に対して検証せずにヒントを反映することがあります。メーカーが報告するのは1言語であり、混合言語の録音内のすべての言語一覧ではありません。検索可能なアーカイブを準備する際は、特に会話の途中で言語が切り替わる場合、元の表現と言語メタデータを一緒に保持してください。
字幕では、1単語ごとに字幕を作らず、連続する時間付きの単語を読みやすいSRTやWebVTTのキューにまとめてください。発話のポーズに合わせてキューを分け、プレーヤーと視聴者に適した長さと表示時間を選びます。話者ターンの境界を使えば、異なる話者を別のキューにできます。時間情報が空でないか、キューの終了時刻が開始時刻より後になっているかを確認してください。字幕の書式、匿名話者ラベルに付ける名前、その後の要約は、文字起こし結果から作るアプリケーションの成果物です。
実用的な録音ワークフローでは、一般的な読みやすい文字起こし、注釈付きの会話ターン、時間付き字幕のどれが必要かを、文字起こし前に決めてください。音声識別子を結果とともに残し、句読点や手掛かりが重要なら返された全文を保持し、移動には構造化された時間フィールドを使います。Proの長時間録音・複数話者の機能は、一般的な短時間録音向けTranscribe 1モデルとは異なり、上限や制御を互換のものとして扱うべきではありません。
Ailoot Ultra · 音声認識 POST /v1/audio/transcriptions fish-audio/transcribe-1-pro
fish-audio/transcribe-1-proはじめに
Transcribe 1 Proは、最大60分の録音を話者マーカー付きのテキストへ変換し、任意で単語単位の時間情報も提供します。推定された感情や発声イベントの手掛かりを残し、インタビュー、会議、ポッドキャストの確認、検索、字幕の準備をしやすくします。
- 対応する入力
- 音声
- 結果
- テキスト
Ailootで利用可能 · 入力とメソッド
Ailoot Ultra · 音声認識 POST /v1/audio/transcriptions
- 入力の種類
audio- 出力の種類
text- 出力形式
- json
| フィールド | 種類 | 要件 | 値と制限 | デフォルト |
|---|---|---|---|---|
フィールドmodel | 種類string | 要件必須 | 値と制限 fish-audio/transcribe-1-pro | デフォルト— |
フィールドinput_audio | 種類object | 要件必須 | 値と制限 正確なキー: data, format | デフォルト— |
フィールドinput_audio.data | 種類base64_string | 要件必須 | 値と制限 デコード後の最大バイト数: 26,214,400 厳密なBase64: はい | デフォルト— |
フィールドinput_audio.format | 種類string | 要件必須 | 値と制限 条件: 実際にファイルを調べて判定した形式と一致する必要があります | デフォルト— |
フィールドresponse_format | 種類string | 要件任意 | 値と制限 json | デフォルト— |
入力素材の組み合わせ
speech_to_text · 必須: input_audio.data, input_audio.format
メソッドのパラメータとライフサイクル
| パラメータ | 仕様 |
|---|---|
パラメータcontent_type | 仕様application/json |
パラメータrequired | 仕様model, input_audio |
パラメータadditional_properties | 仕様false |
パラメータparameters | 仕様{"name":"model","type":"string","required":true,"enum":["fish-audio/transcribe-1-pro"]}, {"name":"input_audio","type":"object","required":true,"exact_keys":["data","format"],"data":"実際のサポート対象の音声バイト列を、厳密なbase64形式にしたもの","format":"ファイルを調べて判定した正確な形式。実際のバイト列と一致する必要があります"}, {"name":"response_format","type":"string","required":false,"enum":["json"]} |
パラメータmax_audio_bytes | 仕様26214400 |
パラメータmultipart_for_this_profile | 仕様false |
パラメータmaterial_types | 仕様audio |
ライフサイクル: 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}
完全なレスポンスと元の返却IDを保持してください。
結果不明の作成リクエストは、決して再送信しないでください。
料金
料金情報はリクエストの機能を追加しません。対応するパラメーターは選択したメソッドに記載されています。
- 高速モード
- 未指定 高速モードが選択されている場合
- Flex モード
- 未指定 flex モードが選択されている場合
- 最大推論量
- 未指定 推論量が最大で、調整に既定値(default)を使用する場合
Ailootの料金
設定別の価格
各料金を表示された条件と照合してください。選択肢となる設定の各組には、いずれか1つの料金を適用します。
| 設定 | 料金表 | 課金単位 | 料金 |
|---|---|---|---|
| 設定基本トークン料金 | 料金表基本料金 | 課金単位— | 料金 入力 · 入力トークン — / 1K トークン 出力 · 出力トークン — / 1K トークン 入力 · キャッシュ読み取り — / 1K トークン 入力 · キャッシュ書き込み — / 1K トークン 入力 · キャッシュ書き込み、1時間 — / 1K トークン |
| 設定入力音声の秒 | 料金表— | 課金単位入力音声1秒あたり | 料金 入力 · 入力音声の秒 $0.0002 入力音声1秒あたり |
Ailootはリクエスト前に見積額を確保します。結果の取得後、実測使用量に基づいて最終料金を精算します。ストリーミング時の精算には最終の使用量記録を使用します。金額の確保と精算の仕組み →
参考料金の詳細
モデル単位の参照料金表は、メソッド選択、見積もり、課金を変更しません。実際の課金には、選択したAilootメソッドの料金を適用します。
Fish Audio: Transcribe 1 Pro
設定別の価格
| 設定 | 課金条件 | 料金 |
|---|---|---|
| 設定Fish Audio: Transcribe 1 Pro · 標準設定 | 課金条件デフォルト設定 | 料金 入力 · 入力音声の秒数 $0.0002 入力音声1秒あたり |
リクエスト例
Ailoot Ultra · 音声認識
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_AUDIO_FILE:?Set your actual audio file}"
: "${AILOOT_AUDIO_FORMAT:?Set its actual probed file format}"
export AILOOT_AUDIO_FILE AILOOT_AUDIO_FORMAT
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "fish-audio/transcribe-1-pro", "response_format": "json"}')
import base64
f=Path(os.environ['AILOOT_AUDIO_FILE'])
raw=f.read_bytes()
if not raw or len(raw)>26214400:raise SystemExit('Use actual audio bytes within 25 MiB')
fmt=os.environ['AILOOT_AUDIO_FORMAT'].strip()
if not fmt:raise SystemExit('Use the actual probed format; the server checks it against the bytes')
p['input_audio']={'data':base64.b64encode(raw).decode(),'format':fmt}
Path('request.json').write_text(json.dumps(p,ensure_ascii=False))
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 result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('result.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT
結果を受け取って保存
Ailoot Ultra · 音声認識
json
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
完了した結果をすべて保存
返された完全なレスポンス、ファイル、コンテンツ部分をすべて保存してください。
JSON全体、レスポンスヘッダー、テキスト、および実際に返されたすべての使用量フィールドを保持してください。レスポンスまたは所有ライブラリにある実際のタスク/アセットの識別情報を使用します。operation_idとtask_idは異なります。
元のレスポンスを確認する場合
再送せずに照合できるよう、元の operation_id/X-Client-Request-ID を保存してください。音声専用のポーリングルートはありません。
レスポンスのフィールド
| フィールド | 種類 | 意味 |
|---|---|---|
フィールドtext | 種類string | 意味文字起こしされたテキスト。 |
フィールドusage | 種類object | 意味音声の使用量。 |
フィールドusage.seconds | 種類number | 意味音声の長さ(秒)。 |
フィールドduration | 種類number | 意味音声の長さ(秒)。 |
フィールドtask_id | 種類string | 意味文字起こしタスクのID。空でない文字起こし結果が保存・公開され、署名付きコンテンツURLが割り当てられた場合に、asset_urlとともに返されます。 |
フィールドasset_url | 種類string | 意味文字起こしコンテンツの署名付きURL。空でない文字起こし結果が保存・公開され、署名付きコンテンツURLが割り当てられた場合に、task_idとともに返されます。 |
エラーと次の手順
| レスポンス | 条件 | 次の手順 |
|---|---|---|
レスポンス400 · invalid_request_error | 条件必須フィールド、素材の表現形式、またはパラメーター値が不正です | 次の手順新しい生成リクエストを送る前に、指定されたフィールドを修正してください。 |
レスポンスserver_error | 条件返されたレスポンスは、操作または結果の確認が必要であることを示しています | 次の手順最初に返された操作/タスク ID、リクエストヘッダー、レスポンスを保存し、その元の操作に対してサポートされている読み取りを継続してください。作成リクエストを再送しないでください。 |
エイリアス
モデルのエイリアス
Ailoot Ultra fish-audio/transcribe-1-pro
メソッドパスのエイリアス
上記に表示されたメソッドパスを使用してください。
関連する呼び出し用ID
FAQ · Fish Audio: Transcribe 1 Pro
- 利用できる入力と結果は何ですか?
POST /v1/audio/transcriptions·fish-audio/transcribe-1-pro:audio→text- リクエストはどの項目を使用しますか?
POST /v1/audio/transcriptions·fish-audio/transcribe-1-pro:model,input_audio,response_format