acestep-lyrics-transcription について
acestep-lyrics-transcription は、OpenAI Whisper または ElevenLabs Scribe で音声をタイムスタンプ付き歌詞に変換するコマンドラインスキルです。LRC、SRT、JSON に対応し、プロバイダーや API キーを設定できます。
主な機能
- 012 種類の API プロバイダーで文字起こし
- 02LRC、SRT、JSON で出力
- 03言語とプロバイダーの選択
- 04API キーと既定値の設定
- 05タイムスタンプ付き歌詞の生成
活用シーン
- 01楽曲の LRC 字幕作成
- 02歌詞の SRT または JSON 出力
- 03多言語音声の文字起こし
- 04原文との照合による認識歌詞の修正
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ ace-step/ ace-step-1.5 --skill acestep-lyrics-transcriptionインストール後、Claude Code で/acestep-lyrics-transcriptionを入力して読み込まれたか確認します。
同梱ファイルscripts/acestep-lyrics-transcription.shscripts/config.example.json
詳細
歌詞文字起こしスキル
OpenAI Whisper または ElevenLabs Scribe API を使って、音声ファイルをタイムスタンプ付きの歌詞(LRC/SRT/JSON)に文字起こしします。
API キーの設定ガイド
文字起こしの前に、ユーザーの API キーが設定されているか必ず確認してください。 次のコマンドを実行して確認します。
cd "{project_root}/{.claude or .codex}/skills/acestep-lyrics-transcription/" && bash ./scripts/acestep-lyrics-transcription.sh config --check-key
このコマンドで確認できるのは、現在のプロバイダーの API キーが設定済みか空かだけです。実際のキーの値は表示されません。ユーザーの API キーの内容を読み取ったり表示したりしないでください。 キーのフィールドに対して config --get を使用したり、config.json を直接読み取ったりしないでください。config --list コマンドは安全です。出力内の API キーは自動的に *** にマスクされます。
コマンドの結果、キーが空の場合は、必ず処理を中断し、先に設定するようユーザーに案内してください。有効なキーなしで文字起こしを試みないでください。失敗します。
AskUserQuestion を使って、次の選択肢と案内を提示し、ユーザーに API キーを尋ねてください。
- 現在有効なプロバイダー(openai または elevenlabs)と、その API キーが設定されていないことをユーザーに伝えてください。キーがないと文字起こしを続行できないことを説明してください。
- キーの取得方法を明確に案内してください。
- OpenAI:https://platform.openai.com/api-keys で API キーを取得できます。請求設定が有効な OpenAI アカウントが必要です。Whisper API の料金は 1 分あたり約 0.006 ドルです。
- ElevenLabs:https://elevenlabs.io/app/settings/api-keys で API キーを取得できます。ElevenLabs アカウントが必要です。無料プランには利用可能なクレジットに上限があります。
- もう一方のプロバイダーのキーをすでに持っている場合は、そちらに切り替える選択肢も提示してください。
- ユーザーがキーを提示したら、次のコマンドで設定してください。
cd "{project_root}/{.claude or .codex}/skills/acestep-lyrics-transcription/" && bash ./scripts/acestep-lyrics-transcription.sh config --set <provider>.api_key <KEY> - ユーザーがプロバイダーの切り替えを希望する場合は、次も実行してください。
cd "{project_root}/{.claude or .codex}/skills/acestep-lyrics-transcription/" && bash ./scripts/acestep-lyrics-transcription.sh config --set provider <provider_name> - 設定後、
config --check-keyを再実行し、キーが設定されていることを確認してから続行してください。
API キーがすでに設定されている場合は、質問せずに文字起こしへ進んでください。
クイックスタート
# 1. cd to this skill's directory
cd {project_root}/{.claude or .codex}/skills/acestep-lyrics-transcription/
# 2. Configure API key (choose one)
./scripts/acestep-lyrics-transcription.sh config --set openai.api_key sk-...
# or
./scripts/acestep-lyrics-transcription.sh config --set elevenlabs.api_key ...
./scripts/acestep-lyrics-transcription.sh config --set provider elevenlabs
# 3. Transcribe
./scripts/acestep-lyrics-transcription.sh transcribe --audio /path/to/song.mp3 --language zh
# 4. Output saved to: {project_root}/acestep_output/<filename>.lrc
前提条件
- curl、jq、python3(または python)
- OpenAI または ElevenLabs の API キー
スクリプトの使い方
./scripts/acestep-lyrics-transcription.sh transcribe --audio <file> [options]
Options:
-a, --audio Audio file path (required)
-l, --language Language code (zh, en, ja, etc.)
-f, --format Output format: lrc, srt, json (default: lrc)
-p, --provider API provider: openai, elevenlabs (overrides config)
-o, --output Output file path (default: acestep_output/<filename>.lrc)
文字起こし後の歌詞修正(必須)
重要:文字起こしの後、MV のレンダリングに使用する前に、必ず LRC ファイルを手動で修正してください。文字起こしモデルは、歌詞について頻繁に誤りを出します。
- 固有名詞:「ACE-Step」→「AC step」、「Spotify」→「spot a fly」
- 音が似ている単語:「arrives」→「eyes」、「open source」→「open sores」
- 単語の結合・分割:「lighting up」→「lightin' nup」
修正ワークフロー
- Read ツールを使って、文字起こしされた LRC ファイルを読み取ります
- ACE-Step の出力 JSON ファイルから元の歌詞を読み取ります
- 元の歌詞全体を参照として使う:行ごとの対応付けは試みないでください。文字起こしでは、元の歌詞と行の分割、結合、並べ替えが異なることがよくあります。代わりに、元の歌詞全体を読んで正しい表現を把握したうえで、LRC の各行を確認し、元の歌詞の内容をもとに誤認識された単語を修正してください。
- 文字起こしの誤りを修正する:タイムスタンプはそのままにして、誤認識された単語を元の正しい単語に置き換えます
- Write ツールを使って、修正した LRC を書き戻します
修正する内容
- 誤認識された単語を元の正しい表現に置き換えます
- すべての
[MM:SS.cc]タイムスタンプをそのまま保持します(文字起こしのタイムスタンプは正確です) [Verse]や[Chorus]などの構成タグは追加しないでください。LRC にはタイムスタンプ付きのテキスト行だけを含めます
例
文字起こし(誤り):
[00:46.96]AC step alive,
[00:50.80]one point five eyes.
元の歌詞の参照:
ACE-Step alive
One point five arrives
修正後(正しい):
[00:46.96]ACE-Step alive,
[00:50.80]One point five arrives.
設定
設定ファイル:scripts/config.json
# Switch provider
./scripts/acestep-lyrics-transcription.sh config --set provider openai
./scripts/acestep-lyrics-transcription.sh config --set provider elevenlabs
# Set API keys
./scripts/acestep-lyrics-transcription.sh config --set openai.api_key sk-...
./scripts/acestep-lyrics-transcription.sh config --set elevenlabs.api_key ...
# View config
./scripts/acestep-lyrics-transcription.sh config --list
| オプション | デフォルト | 説明 |
|---|---|---|
provider | openai | アクティブなプロバイダー:openai または elevenlabs |
output_format | lrc | デフォルトの出力形式:lrc、srt、または json |
openai.api_key | "" | OpenAI API キー |
openai.api_url | https://api.openai.com/v1 | OpenAI API のベース URL |
openai.model | whisper-1 | OpenAI モデル(単語単位のタイムスタンプには whisper-1 を使用) |
elevenlabs.api_key | "" | ElevenLabs API キー |
elevenlabs.api_url | https://api.elevenlabs.io/v1 | ElevenLabs API のベース URL |
elevenlabs.model | scribe_v2 | ElevenLabs モデル |
プロバイダーに関する注意事項
| プロバイダー | モデル | 単語単位のタイムスタンプ | 料金 |
|---|---|---|---|
| OpenAI | whisper-1 | 対応(セグメント単位および単語単位) | 1 分あたり $0.006 |
| ElevenLabs | scribe_v2 | 対応(単語単位) | プランにより異なります |
- OpenAI の
whisper-1は、単語単位のタイムスタンプに対応する唯一の OpenAI モデルです - ElevenLabs の
scribe_v2は、タイプフィルタリングを使用して単語単位のタイムスタンプを返します - どちらも多言語の文字起こしに対応しています
例
# Basic transcription (uses config defaults)
./scripts/acestep-lyrics-transcription.sh transcribe --audio song.mp3
# Chinese song to LRC
./scripts/acestep-lyrics-transcription.sh transcribe --audio song.mp3 --language zh
# Use ElevenLabs, output SRT
./scripts/acestep-lyrics-transcription.sh transcribe --audio song.mp3 --provider elevenlabs --format srt
# Custom output path
./scripts/acestep-lyrics-transcription.sh transcribe --audio song.mp3 --output ./my_lyrics.lrc