本文へスキップ

HeartMuLaで録音から確認済みの歌詞シートを作る

曲の音源をHeartMuLaに送り、サビの反復や不確かな語句を確かめ、リクエスト予算を立てて、確認済み歌詞を字幕として同期します。

執筆
Lydia
公開
読了時間
約 8 分
更新
ヘッドフォンをかけた女性とアコースティックギターを持つ男性が、木の温かみのある録音スタジオで夕日に向かってマイクを挟んで向かい合っている

HeartMuLa Transcribe は、曲の録音をリクエストあたり$0.05のテキスト草稿に変えます。トラックが二十秒でも六分でも同じです。音声 URL を直接送り、data.output.text から歌詞を読み取り、同じ録音と突き合わせて反復箇所や不確かな語句を確認してください。このタスクは行ごとの時刻、歌手名、信頼度スコアを返しません。確かめた歌詞シートと同期済みの字幕ファイルは別の作業になります。

タスクが受け取るもの、返すもの

HeartMuLa Transcribe のページにある入力はaudio_url ひとつ、最大90 MB の MP3 または WAV です。プロンプト、モデルサイズ、タイムスタンプのフィールドはなく、言語設定もありません。モデルは音声から言語を判断するので、非英語の歌詞でも同じように動きます。音楽の上に乗る歌唱向けです。インタビューやポッドキャストなら、Grok STTのような汎用音声モデルのほうが適しています。規制なしのモデルで、明示的な歌詞は歌ったとおりに返り、マスキングも拒否もありません。音声の権利については、あなた側の責任が残ります。

HeartMuLaのオープンな歌詞認識モデル HeartTranscriptor はWhisperを土台に、分離したボーカルトラックで学習されています。作者は先にボーカルを分離することを推奨しています。ホスティングされたリクエストに分離スイッチはありません。伴奏が密に重なる録音では、Demucsのような分離ツールを自分で実行し、歌唱トラックを二つ目のリクエストとして送れます。そのトラックは実験として扱ってください。分離で変わる語句は元のミックスと見比べてください。分離はアーティファクトが生じうるため、スタジオで録ったボーカルが別の演奏の語句を決めることはできません。ささやきや叫び声、極端に低いビットレートのファイルは精度が落ちます。最も品質の高いMP3またはWAVを送ってください。

まず Playground で試す

HeartMuLa Transcribe のページを開き、Playground タブのままにしてください。

  1. Input audio で Choose a file を押し(MP3 または WAV、最大 90 MB)、別の場所にホストされたファイルならAsset URLに切り替えてAdd URLを押します。フィールドはこれだけです。
  2. 価格の目安を確認します。長さにかかわらず$0.05です。
  3. ログインして実行します。歌詞テキストはOutput パネルに現れ、プレビューの横にJSON ビューが並びます。

URLはプレイヤー、共有ページ、ログインページではなく、音声ファイル自体を返す必要があります。そうでなければ不正なアセットとしてタスクは失敗します。送信したものと同じ版のコピーを自分で保管してください。文字起こしは、その演奏に紐づいたままになります。一括処理をキューに入れる前に、ここで最も難しいトラックを試してください。

コードから呼び出す

Python SDK(pip install spicyapi、Python 3.11+)をインストールし、SPICY_API_KEY にサーバー側のキーを設定して、次を実行します:

python
from pathlib import Path
import uuid

from spicyapi import SpicyClient

client = SpicyClient()  # reads SPICY_API_KEY from the environment

song = client.upload_file("./authorized-original-song.wav")  # uploads are kept for one day
task = client.create_task(
    model="heartmula/transcribe/speech-to-text",
    input_data={"audio_url": song["uri"]},
    idempotency_key=str(uuid.uuid4()),  # new key per new request; reuse only to retry the same one
)
final = client.wait_for_terminal(task["taskId"])
if final["state"] != "succeeded":
    raise RuntimeError(f"Task {task['taskId']} ended as {final['state']}")

# The lyrics are text on the task, not a file; save them now, task content is not permanent
Path("lyrics-draft.txt").write_text(final["output"]["text"])

アップロード、待機、エラー、再試行はPython SDK リファレンスにあります。タスクガイドがタスクのライフサイクルとコールバックを扱います。インストゥルメンタルの音源はほぼ何も返さず、それでも成功した実行として課金されます。一括処理をキューに入れる前に、声のない音源をあらかじめ除外してください。完了したタスクが示すのは完了であって、精度ではありません。

Agent に実行させる

アシスタントにフォルダ内の曲を書き起こさせるなら、CLI か MCP サーバーを渡してください。どちらも価格を表示し、有料の呼び出し前に確認を求めます。Skill を使うと、さらに指示が加わります。

  • CLI. spicyapi はターミナルからひとつのタスクを実行します(npx @spicyapi/cliならインストールなしで動作します):

``bash spicyapi files upload ./song.wav # prints a spicy:// URI spicyapi tasks create --model heartmula/transcribe/speech-to-text \ --input-json '{"audio_url": "spicy://YOUR-UPLOAD-URI"}' --wait ``

  • MCP サーバー. アシスタントにMCP サーバーを追加して、次のように依頼します:「./song.wav の歌詞を HeartMuLa Transcribe で書き起こして」。spicyapi_upload_file を呼び、次に spicyapi_task_create(価格確認のためそこで停止します)、次に spicyapi_task_wait を呼びます。

``json { "mcpServers": { "spicyapi": { "command": "npx", "args": ["--yes", "--package=@spicyapi/mcp", "spicyapi-mcp"], "env": { "SPICY_API_KEY": "YOUR_SPICY_API_KEY" } } } } ``

  • Skill. npx skills add spicyapi-ai/spicy-skill はAgent Skillをインストールします。これはコーディングアシスタントに現行のスキーマを読み、冪等性キーを再利用することを教えます。それ自体はタスクを実行できないので、CLI か MCP と組み合わせて使ってください。

句読点の前に、全体をカバーしているか確かめる

音源を一度再生して、構成を書き出してください: 節(バース)、サビ、ブリッジ、アウトロ。この並びを草稿と見比べてください。自然な書き起こしはふたつのサビをひとつにまとめてしまうことがあります。句読点を整えても、失われた演奏は戻りません。Whisper 系モデルは、行を繰り返したり、短い部分を落としたり、長い「おー」やハミングの上に語句を作り出したりすることがあります。テキストがループして見える箇所や、異様に自信ありげな箇所では必ず再生してください。

繰り返し現れる語句を自動的に削除しないでください。歌のエコー、繰り返されるメインのフレーズ、認識ミスのいずれかです。その箇所を再生して判断してください。編集者の変更がモデルに帰属しないよう、未変更の草稿は残しておきます。

繰り返しは歌われたとおりに残します。最初のサビが「Leave the lamp beside the window」、最後のサビが「Leave the lamp beneath the window」と歌う架空の曲を考えてみてください。どちらも旋律に合います。書き起こしは実際に歌った変更を残すべきで、最初のサビを次のサビに上書きしてはいけません。

意味が変わる語句を確定させる

否定、固有名詞、数値、行の意味を左右する短い語句を優先してください。「Do not close the garden gate」と「Do close the garden gate」はどちらも正しく読めても、意味が正反対です。両側に数秒の文脈を付けて再生してください。ひとつの子音だけ切り離すと、語句全体より聞き取りにくいからです。

音声があいまいなままなら、歌唱者に尋ねるか、非公開で不確実性のメモを残してください。繰り返し行った書き起こしを多数決で決着させてはいけません。同じ推測は独立した証拠ではありません。声の重ねがある曲では、シートがリードだけを含むのか、聞こえるバックボーカルも含むのかを決め、役割のラベルは自分自身の試聴や制作メモをもとにだけ付けてください。

語句を確認してから字幕を入れる

このタスクはタイムスタンプを返しません。最終版の音声または映像を字幕エディターで開き、歌われるフレーズごとにキューを置き、その演奏に合わせて開始・終了時刻を設定します。ボーカルの最初の入り、繰り返す各サビ、最後の行を確認してください。長さ全体に均等に文字を配る方法は失敗します。インストゥルメンタルの間や息を伸ばした音節は、間隔が一定ではないからです。

音声を編集したら、必ず再整列してください。原文のテキストは訳文とは別に扱ってください。このタスクに翻訳フィールドはありません。歌える翻案は語句もリズムも変えます。

録音ごとの予算

費用はリクエスト数×$0.05です。ボーカルのアレンジがふたつなら$0.10、各々に歌唱トラックのリクエストを加えると$0.20、二十四件の録音は再試行前で$1.20です。長さが価格に入ることはないので、短いクリップのフォルダは毎分あたりでは割高です。リクエストにつき一曲を提出してください。複数曲を単一ファイルに連結すると、境界のないひとつの文章ブロックとして返り、復元するための時刻も付きません。

問題次の一手
URL が HTML を返す、またはログインを要する直接の音声 URL に置き換えるか、ファイルをアップロードする
最後のサビが欠けているその区間を再生する。歌唱トラックを二回目のリクエストとして試す
ひとつの子音が聞き取りにくい文脈で再生するか、歌唱者に尋ねる
テキストは正しいが字幕がずれる最終版の映像に対して再整列する。別の書き起こしでは時刻は得られない

他の言語 English · 한국어 · Deutsch · Français · Español · Português (Brasil) · Русский · Italiano · Polski

実際に試してみる

支払いは実行した分だけ。プランもサブスクリプションもありません。

使用モデル:MiniMax H3 · ByteDance Seedance 2.0 Fast