Communitygithub.com

文字轉音樂 (Text-to-Music)

根據文字描述和/或歌詞生成帶有人聲的歌曲,或將現有歌曲改編成新的風格。

文字轉音樂 (Text-to-Music) 是什麼?

此技能可讓AI代理通過兩種方式建立完整的人聲配伴奏MP3歌曲:'生成'模式可根據音樂描述和歌詞從頭創作新歌;'改編'模式則能保留原曲旋律,以指定風格重新演繹,並可選擇保留或更換歌詞。使用者只需提供文字提示(描述曲風、節奏、樂器)和歌詞來源(自己撰寫、檔案或讓伺服器根據主題生成),即可獲得兩個不同的變體。支援本地檔案或公開URL作為參考音訊,並提供細部參數如人聲性別、音色、曲長提示等。後台會回傳任務ID,即使中途逾時也能恢復查詢狀態,每次執行都會產出兩個變體。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/NoizAI/skills/tree/HEAD/skills/text-to-music

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

文字轉音樂 (Text-to-Music) 是做什麼的?

兩種方式產生帶有人聲與伴奏的歌曲,並儲存為 MP3 格式。每次請求會產出 兩個變體。

  • 生成 — 根據音樂描述與歌詞創作全新歌曲。
  • 改編 — 保留原曲旋律,以新風格重新演唱。歌詞可使用原曲(自動辨識)或全新撰寫。

觸發條件

  • 寫一首歌 / 生成音樂 / 文字轉音樂 / 作曲
  • 把這些歌詞變成一首歌 / 唱這首歌 / 廣告曲 / 主題曲 / 生日歌
  • 翻唱這首歌 / 做一個爵士版本 / 換另一個風格重製
  • make a song / generate music / text to music / compose
  • turn these lyrics into a song / sing this / jingle / theme song / birthday song
  • cover this song / make a jazz version / remake in another style

生成 — 從文字創作新歌

請求需要一個 提示(音樂描述)以及 恰好一個 歌詞來源:

# 讓伺服器根據主題撰寫歌詞
python3 skills/text-to-music/scripts/t2m.py "歡快的獨立流行,明亮的吉他,120 BPM" \
  --lyrics-prompt "一首關於和朋友夏日公路旅行的歌"

# 使用自己的歌詞(內嵌或從檔案讀取)
python3 skills/text-to-music/scripts/t2m.py "華語流行抒情曲,鋼琴與弦樂" \
  --lyrics $'[主歌]\n窗外的雨停了\n[副歌]\n我還在等你' --vocal-gender Female --title "雨停了"
python3 skills/text-to-music/scripts/t2m.py "低傳真嘻哈,柔和,黑膠噪點" \
  --lyrics-file song.txt --duration 120 -o chill.mp3

# 以參考歌曲作為人聲/風格的模型(本地檔案 ≤20 MB 或公開 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—歌詞文字;使用 [主歌]、[副歌]、[橋段] 標記有助於結構化
--lyrics-file—UTF-8 .txt 歌詞檔案(≤64 KB)
--lyrics-prompt—伺服端創作歌詞的主題
--tags—風格標籤,以逗號分隔(≤50 字元)
--negative-tags—要避免的風格
--duration / -d自動目標長度提示:60、120 或 180 秒。僅供參考,並非保證。
--ref-audio—參考歌曲,本地路徑或公開 URL

--yrics、--lyrics-file 和 --lyrics-prompt 互斥;必須提供其中一個。

改編 — 重新演唱現有歌曲

需要提供 來源歌曲、歌詞,以及新聲音的描述(--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必填原曲:本地檔案(≤100 MB;mp3/wav/m4a/aac/flac/ogg)或公開 URL
--style / -s—簡短風格標籤,例如 "搖滾,男聲"(≤50 字元)
--prompt / -p—改編版聲音的詳細描述(≤1500 字元)
--adherencehighhigh = 緊密遵循原曲編排;main_melody = 僅保留主旋律,自由度更高
--lyrics / -l—要演唱的歌詞
--lyrics-file—UTF-8 .txt 歌詞檔案(≤64 KB)
--recognize-lyrics關閉先轉錄來源歌曲的歌詞再使用
--output / -ocover.mp3輸出路徑;變體會加上 _v1 / _v2 後綴

至少需要提供 --style / --prompt 其中之一;且必須提供恰好一個歌詞來源。

共用參數

參數預設值說明
--title—歌曲標題(≤80 字元)
--vocal-gender—Male 或 Female
--vocal-timbre—自由描述人聲,例如 "沙啞溫暖的女低音"(≤50 字元)
--output / -osong.mp3(改編為 cover.mp3)輸出路徑;變體會加上 _v1 / _v2 後綴
--no-wait關閉提交後直接印出任務 ID 並結束
--poll-interval10狀態檢查間隔秒數
--timeout1800最長等待秒數(任務會持續在伺服器端執行)
--api-key來自環境/設定檔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(分析階段在演唱之前執行,因此改編耗時較長)。下載網址約 24 小時後過期;重新執行 status 可取得新的網址。

撰寫有效提示

  • 提示 / 風格 = 聲音:曲風 + 情緒 + 樂器 + 速度。例如 "電影感管弦流行,高亢弦樂,90 BPM,充滿希望"。
  • 歌詞:段落保持簡短並加上標籤。中文、英文或混合歌詞皆可。
  • 短歌曲:若為廣告曲或問候語,可傳入 -d 60 並只寫一段主歌加副歌。
  • 改編:選擇 high 可保持原曲辨識度;選擇 main_melody 可進行大幅度的風格轉變。
  • 不滿意?重新執行即可 — 每次執行都會產出兩個新的變體。

費用

  • 歌曲與改編 按 每項任務收費一次(而非每個變體):ceil(最長變體秒數) × 15 點數,在兩個變體皆成功後扣款。一首 2 分鐘的歌曲約需 1,800 點數。若訂閱點數不足以支付整項任務,則按即用即付計費,每 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 你的金鑰
# 或
export NOIZ_API_KEY=你的金鑰

請在 developers.noiz.ai 取得您的 API 金鑰。

需求

  • 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 簽署的儲存網址下載並儲存至輸出路徑。不會修改其他檔案。

Individual skills in this repo

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

相關技能