Communitygithub.com

NoizAI/skills

テキスト記述や歌詞からボーカル付きの曲を生成したり、既存の曲を新しいスタイルでカバーするためのスキルです。

skills とは?

このスキルは、ユーザーがテキストと歌詞から新しい楽曲を生成したり、既存の曲を新しいスタイルでカバーするために使用します。主に二つの機能「Generate(生成)」と「Cover(カバー)」を提供し、毎回二つのバリエーションをMP3ファイルで出力します。短いジングル、テーマソング、誕生日ソングからフルレングスの楽曲まで対応し、歌詞の自動生成や既存曲からの歌詞認識、参照音源によるスタイルモデリングなど、多彩なオプションを備えています。コストはジョブ単位で課金され、2分の曲で約1800クレジット(従量課金の場合$0.00015/秒)です。APIキーはdevelopers.noiz.aiで取得でき、Pythonスクリプトを通じてコマンドラインから操作します。純粋なインストゥルメンタルは非対応で、常に歌詞が必要です。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/NoizAI/skills/tree/HEAD/skills/text-to-music

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

テキストから音楽へ

ボーカル+伴奏付きの曲を作る二つの方法。MP3で保存されます。すべてのリクエストで二つのバリアントが生成されます。

  • Generate(生成) — 音楽の説明と歌詞から新しい曲を作成。
  • Cover(カバー) — 既存の曲を新しいスタイルで歌い直し、メロディーはそのまま維持。歌詞はオリジナル(自動認識)か新しいものを使えます。

トリガー

  • 曲を作って / 音楽を生成して / テキストから音楽へ / 作曲して
  • この歌詞を曲にして / 歌って / ジングル / テーマソング / 誕生日ソング
  • この曲をカバーして / ジャズバージョンにして / 別のスタイルで作り直して
  • 写歌 / 生成音乐 / 作曲 / 唱首歌 / 歌词谱曲 / 翻唱 / 改编 / 换个风格唱

Generate — テキストから新しい曲

リクエストにはプロンプト(音楽の説明)とちょうど一つの歌詞ソースが必要です。

# テーマからサーバーに歌詞を書かせる
python3 skills/text-to-music/scripts/t2m.py "アップビートなインディーポップ、明るいギター、120 BPM" \
  --lyrics-prompt "友達との夏のロードトリップについての曲"

# 自分で書いた歌詞を使う(インラインまたはファイルから)
python3 skills/text-to-music/scripts/t2m.py "マンドポップバラード、ピアノとストリングス" \
  --lyrics $'[Verse]\n窓の外の雨が止んだ\n[Chorus]\nまだ君を待っている' --vocal-gender Female --title "雨が止んだ"
python3 skills/text-to-music/scripts/t2m.py "ローファイヒップホップ、まったり、ビニールのノイズ" \
  --lyrics-file song.txt --duration 120 -o chill.mp3

# 参照曲でボーカル/スタイルをモデリング(ローカルファイル20MB以下または公開URL)
python3 skills/text-to-music/scripts/t2m.py "ドリーミーなシンセポップ" --lyrics-file song.txt --ref-audio ./ref.mp3

出力: song_v1.mp3 と song_v2.mp3 (または -o 指定時は <stem>_v1.mp3 / <stem>_v2.mp3)。サーバーが歌詞を書いた場合、それらは <stem>_lyrics.txt にも保存されます。

引数デフォルト説明
prompt必須音楽の説明:ジャンル、ムード、楽器、テンポ(1500文字以下)
--lyrics / -l—歌詞テキスト; [Verse]、[Chorus]、[Bridge] のマーカーで構造化を助ける
--lyrics-file—UTF-8 .txt 歌詞ファイル(64KB以下)
--lyrics-prompt—サーバー側の歌詞作成のためのテーマ
--tags—スタイルタグ、カンマ区切り(50文字以下)
--negative-tags—避けるスタイル
--duration / -d自動目標長さのヒント:60、120、180 秒。ヒントであり、保証ではありません。
--ref-audio—参照曲、ローカルパスまたは公開URL

--lyrics、--lyrics-file、--lyrics-prompt は相互排他的です。いずれか一つが必要です。

Cover — 既存の曲を歌い直す

ソース曲、歌詞、新しいサウンドの説明(--style または --prompt)が必要です:

# 同じ歌詞、新しいスタイル:元の曲から歌詞を認識し、カバーする
python3 skills/text-to-music/scripts/t2m.py cover original.mp3 \
  --style "ジャズ、スモーキーな女性ボーカル" --recognize-lyrics -o jazz_cover.mp3

# 元のメロディーに新しい歌詞、より自由なアレンジ
python3 skills/text-to-music/scripts/t2m.py cover https://example.com/song.mp3 \
  --prompt "アコースティックフォーク、フィンガーピッキングギター、親密な" --lyrics-file new_lyrics.txt \
  --adherence main_melody --vocal-gender Male

# 歌詞のみ認識(カバー前に確認または編集するため)
python3 skills/text-to-music/scripts/t2m.py lyrics original.mp3 -o lyrics.txt

ユーザーが歌詞を編集したい場合のおすすめフロー: lyrics を実行 → ファイルを編集 → cover --lyrics-file。

引数デフォルト説明
source必須元の曲:ローカルファイル(100MB以下;mp3/wav/m4a/aac/flac/ogg)または公開URL
--style / -s—短いスタイルタグ、例:"ロック、男性ボーカル"(50文字以下)
--prompt / -p—カバーのサウンドの長い説明(1500文字以下)
--adherencehighhigh = 元のアレンジに忠実に従う;main_melody = メインメロディーのみ保持し、より自由に
--lyrics / -l—歌う歌詞
--lyrics-file—UTF-8 .txt 歌詞ファイル(64KB以下)
--recognize-lyricsoffソースの歌詞を最初に書き起こして使用する
--output / -ocover.mp3出力パス;バリアントには _v1 / _v2 の接尾辞が付く

--style / --prompt の少なくとも一方が必要です。歌詞ソースは一つだけ必要です。

共通引数

引数デフォルト説明
--title—曲のタイトル(80文字以下)
--vocal-gender—Male または Female
--vocal-timbre—自由形式の声の説明、例:"ハスキーで温かみのあるアルト"(50文字以下)
--output / -osong.mp3(カバーの場合は cover.mp3)出力パス;バリアントには _v1 / _v2 の接尾辞が付く
--no-waitoffジョブを送信し、ジョブIDを表示して終了
--poll-interval10ステータス確認の間隔(秒)
--timeout1800最大待機時間(秒)(ジョブはサーバー上で実行され続ける)
--api-keyenv/configからNoiz APIキー(保存済みキーを上書き)

ジョブの再開 / 確認

生成では二つの gen_product_id、カバーでは一つの task_id が出力されます。待機がタイムアウトした場合や --no-wait を使用した場合は、以下で再開します:

python3 skills/text-to-music/scripts/t2m.py status <id_v1> <id_v2> -o song.mp3
python3 skills/text-to-music/scripts/t2m.py status --cover <task_id> -o cover.mp3
python3 skills/text-to-music/scripts/t2m.py status --cover <task_id> --no-wait   # ステータスのみ表示

ステータスは submitted → running → succeeded / failed と遷移します。カバーは stage も報告します(分析が歌唱の前に行われるため、カバーは時間がかかります)。ダウンロードURLは約24時間で期限切れになります。新しいURLを取得するには status を再実行してください。

良いプロンプトを書くために

  • プロンプト / スタイル = サウンド:ジャンル+ムード+楽器構成+テンポ。 "シネマティックオーケストラポップ、高揚するストリングス、90 BPM、希望に満ちた"。
  • 歌詞:セクションを短く保ち、ラベルを付けてください。中国語、英語、混在した歌詞もすべて動作します。
  • 短い曲:ジングルや挨拶用の場合は、-d 60 を渡し、バースとコーラスのみを書いてください。
  • カバー:認識可能なカバーにするには high を選び、大きなジャンル変更には main_melody を選んでください。
  • 満足できない場合?もう一度実行してください — 毎回新しい二つのバリアントが生成されます。

料金

  • 曲とカバーはジョブごとに一回課金されます(バリアントごとではありません):ceil(最も長いバリアントの秒数) × 15 クレジット。両方のバリアントが成功した後に課金されます。2分の曲の場合、約1800クレジットかかります。サブスクリプションクレジットがジョブ全体をカバーしない場合、従量課金として $0.00015/秒 で課金されます。スクリプトは完了時に課金額を表示します。
  • 歌詞認識(lyrics / --recognize-lyrics):100クレジット(または従量課金 $0.001)。ボーカルが検出された場合のみ課金されます。

レート制限:キーあたり、エンドポイントあたり、毎分5サブミッション。ステータスポーリングは毎分60回。

制限事項

  • 純粋なインストゥルメンタル音楽はサポートされていません — 常に歌詞が必要です。
  • --duration はあくまでヒントです。実際の長さは異なる可能性があります。カバーはソースの長さに従います。
  • センシティブなコンテンツを含むプロンプトや歌詞は拒否されます(code=400)。

設定

python3 skills/text-to-music/scripts/t2m.py config --set-api-key YOUR_KEY
# または
export NOIZ_API_KEY=YOUR_KEY

APIキーは developers.noiz.ai で取得してください。

必要条件

  • Python 3.6+
  • requests パッケージ:uv pip install requests
  • developers.noiz.ai からの Noiz APIキー

セキュリティとデータ開示

  • APIキー:~/.config/noiz/api_key に保存(パーミッション 0600)または NOIZ_API_KEY 環境変数経由。
  • ネットワーク:プロンプト、歌詞、参照/ソース音声(ファイルアップロードまたはURL)は https://noiz.ai/v1/text-to-music および https://noiz.ai/v1/text-to-music/cover* に送信されます。ジョブステータスは同じエンドポイントからポーリングされます。その他のデータは送信されません。
  • 出力:生成されたMP3(および歌詞テキストファイル)は署名付きのNoizストレージURLからダウンロードされ、出力パスに保存されます。他のファイルは変更されません。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

関連スキル