はじめに
音声ファイルの中で歌われている歌詞を文字起こしし、タスクにテキストとして返します。素の話し声ではなく、音楽に乗ったボーカルのために調整されています。
HeartMuLa Transcribe は音声ファイルから歌唱部分の歌詞を取り出し、テキストで返します。音声フィールドが 1 つあるだけで設定項目はなく、多言語に対応し、音声の分数ではなく文字起こし 1 回ごとに課金します。
主な機能とハイライト
汎用の音声認識が崩れるところに合わせてある
歌われた声はコンプレッサーがかかり、重ねられ、リバーブをまとい、しかも楽器と同じ帯域でぶつかり合っています。汎用の音声モデルが学習していないのはまさにこの状態で、返ってくるのは断片になりがちです。このモデルはそこに合わせて調整されています。裏を返せば、競合する伴奏のないインタビューやポッドキャストでは、汎用の音声テキスト化モデルのほうが適した道具です。
結果はタスクに載るテキスト、取りに行くファイルはなし
取りに行くファイルは書き出されません。処理はタスク自体で終わり、文字起こしは結果に載ります。ダウンロードの工程もなければ書き込み先のバケットもなく、14 日間のメディア保持にも何も入りません。完了したタスクからテキストを読み取り、歌詞を置いてある場所へそのまま流し込めます。
バックカタログは掛け算、短い断片の山はそうならない
長さは値段に入らないので、6 分の曲も 20 秒のフックも同じ料金です。未処理の山は「曲数 × 一つの数字」で見積もれる一方、短い断片ばかりのフォルダは相対的に割高な形になります。織り込んでおきたいのは、インストゥルメンタルだった音源がほとんど空の結果を返しても、それが成功した課金対象の実行として数えられることです。キューに積む前に弾いておいてください。
リクエストパラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
audio_url | はい | 音声ファイルに直接解決する URL です。HTML を返すページは素材エラーとして失敗します。 1 文字以上 |
料金
$0.05 / 文字起こし
課金は音声の長さではなく文字起こし 1 回ごとです。インストゥルメンタルのように内容が乏しい結果でも課金されます。
ユースケース
音声を使えるテキストにする
音声ファイルの中で歌われている歌詞を文字起こしし、タスクにテキストとして返します。素の話し声ではなく、音楽に乗ったボーカルのために調整されています。音声または動画の文字起こしに使います。可能な場合は明瞭な録音を用意し、人名、時刻、信頼度が低い箇所を確認します。
楽曲カタログのメタデータ
カタログ全体の歌詞テキストを起こして、検索・表示・タグ付けに使います。1 回ごとの課金なので、たまった分の費用は総再生時間の関数ではなく単純な掛け算で読めます。
音楽に乗せた動画の字幕
密度の高いミックスの上に乗ったボーカルから歌詞の行を取り出し、ショート動画の字幕に合わせ込むための素材にします。
モデレーションと権利確認
公開前に、その曲が実際に何を歌っているかを読みます。過激な言葉遣いや権利の申し立てについて判断が要る場面で使えます。
プロンプトガイドと実践のヒント
音声ファイルへの直リンクを送る
このフィールドが受け取るのはアップロード本体ではなく URL です。指す先は音声そのものにしてください。HTML を返す配信ページや共有リンクは、文字起こしの失敗ではなく素材エラーとして失敗します。
返るのはファイルではなくタスク上のテキスト
文字起こしはタスクの結果にテキストとして返ります。取得するメディアはなく、このエンドポイントについてはメディア保存の対象になるものもありません。
次の調整に進む前に結果を確認します
入力は音声の URL が 1 つ、出力は歌詞テキスト、設定できるものはありません。言語の指定も、タイムスタンプも、話者ラベルも、信頼度も、出力形式の選択もありません。調整されているのは伴奏に乗った歌声なので、重なりの多いミックス、ささやき声やシャウト、極端に低ビットレートの音源では結果が落ち、伴奏だけの音声はほとんど何も返しません。URL は音声ファイルに直接解決する必要があり、HTML を返すページは素材エラーとして失敗します。このエンドポイントはメディア生成物を作らないため、14 日間のメディア保存に入るものはありません。
API クイックスタート
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "heartmula/transcribe/speech-to-text",
"input": {
"audio_url": "https://example.com/reference.mp3"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
認証、完全なスキーマ、ポーリング、エラー処理は API リファレンスを参照してください。
