Communitygithub.com

每日新聞播客

使用新聞聚合技能擷取最新新聞,將其格式化為 Markdown 播客腳本,再使用 TTS 技能生成播客音檔。當使用者要求取得最新新聞並以播客形式朗讀時使用。

每日新聞播客 是什麼?

每日新聞播客技能(Daily News Caster Skill)讓 AI 代理能夠自動抓取即時新聞、將其整理成雙人對話形式的 Markdown 播客腳本,並透過 TTS 技能逐句生成語音後合成為完整的音檔。此技能主要依賴「news-aggregator-skill」來擷取新聞(支援 Hacker News、GitHub 等來源),以及「tts」技能來產生語音。工作流程嚴格分為五步驟:先確認依賴技能存在、執行新聞擷取腳本、撰寫雙主持人問答風格的播客腳本、逐行生成音檔並合併、最後同時輸出腳本文字與音檔路徑。開發者需注意此技能本身不含可執行程式碼,所有網路呼叫與憑證需求皆由依賴技能處理;TTS 技能若使用 noiz 後端則需要 `NOIZ_API_KEY`,否則可使用訪客模式內建語音。技能會建立 `podcast_script.md`、多個暫存 `line_*.wav`、`list.txt` 及最終 `podcast_output.wav` 等檔案於目前工作目錄,但不會修改任何組態或儲存憑證。

相容平台✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/noizai/skills/tree/main/skills/daily-news-caster

在你喜歡的 AI 中提問

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

說明文件

每日新聞播客技能

此技能讓代理能夠擷取即時新聞、將其組織成對話式播客腳本,並生成朗讀腳本的音檔。

工作流程說明

當使用者要求取得最新新聞並製成播客時,請嚴格遵循以下步驟:

步驟 1:確保必要技能已存在

確認 news-aggregator-skill 和 tts 存在於工作區(位於 skills/ 或 .cursor/skills/ 目錄下)。如果缺少任一技能,請告知使用者缺少哪些技能,並要求他們手動安裝後再繼續。請勿嘗試自動安裝技能。

步驟 2:擷取最新新聞

從 news-aggregator-skill 技能目錄(例如 skills/news-aggregator-skill/scripts/fetch_news.py)中找到 fetch_news.py。如有需要,可閱讀其 SKILL.md 以了解使用方法。

執行腳本以擷取即時新聞。您可以根據使用者要求指定來源(例如 hackernews、github、all)或關鍵字。 範例命令:

python3 skills/news-aggregator-skill/scripts/fetch_news.py --source all --limit 10 --deep

步驟 3:草擬播客腳本(內部步驟)

閱讀擷取的新聞資料,並將資訊重寫為 Markdown 播客腳本。 關鍵:優先採用雙主持人(兩人)對話格式(例如主持人 A 和主持人 B),並以動態的問答風格呈現。 腳本應具備以下特點:

  • 雙主持人對話式但簡潔: 撰寫兩位主持人之間引人入勝的來回對話。主持人 A 應提出有洞察力、高價值的問題來引導對話,而主持人 B 則應提供資訊豐富且簡潔的答案。感覺要像一場聰明、節奏快速的問答對話。
  • 避免冗言贅字: 不要包含不必要的冗詞或過長的過渡句。保持言簡意賅,同時保留所有關鍵資訊與事實。
  • 清楚標示發言者: 每行或每段開頭標註發言者名稱(例如 主持人 A: 或 主持人 B:)。
  • 朗讀文字清晰: 避免在朗讀文字中出現複雜的 URL、原始 Markdown 連結或無法發音的字元。

將此腳本儲存為本機檔案,名為 podcast_script.md。

podcast_script.md 內容範例:

**主持人 A:** 歡迎收聽今日新聞摘要。今天我們有幾則令人振奮的科技消息。首先,[公司名稱] 發布了一項重大更新。這項新發布對一般使用者而言,核心影響是什麼?

**主持人 B:** 重點在於……[插入簡潔答案與新聞項目 1 摘要]。這完全改變了我們處理 [主題] 的方式。

**主持人 A:** 這真是太棒了。但考慮到最近發生的資料外洩事件,這種新方法是否會引發安全疑慮?

**主持人 B:** 沒錯。專家指出……[插入分析或背景資訊]。

**主持人 A:** 接下來轉到開源世界,今天 GitHub 上有哪些開發者應該關注的趨勢?

**主持人 B:** 一個值得注意的專案是……[插入新聞項目 2 的簡潔摘要]。

**主持人 A:** 很棒的見解。這就是今天的快速更新。感謝收聽!

步驟 4:逐句生成播客音檔

為避免一次性將整個腳本傳送給 API,您必須逐句生成音檔,然後再進行合併。

使用本機 tts 技能中的 tts.py(skills/tts/scripts/tts.py)。請閱讀 tts 技能的 SKILL.md 以了解完整用法和後端選項。

1. 為每句台詞生成音檔: 對於腳本中的每一句對話,執行 speak 命令。為對應的主持人使用適當的語音或參考音檔。如果使用者提供了兩位角色的參考音檔,請透過 --ref-audio 標誌使用(需要 noiz 後端和 NOIZ_API_KEY)。如果沒有 API 金鑰,則可以使用訪客模式語音(請參閱 tts SKILL.md 以取得語音清單)。

python3 skills/tts/scripts/tts.py -t "歡迎收聽今日新聞摘要……" --ref-audio host_A.wav -o line_01.wav

python3 skills/tts/scripts/tts.py -t "重點在於……" --ref-audio host_B.wav -o line_02.wav

2. 合併音檔: 建立一個文字檔案(例如 list.txt),依序列出所有已生成的音檔:

file 'line_01.wav'
file 'line_02.wav'

然後使用 ffmpeg 將它們合併成一個播客音檔:

ffmpeg -f concat -safe 0 -i list.txt -c copy podcast_output.wav

步驟 5:呈現最終結果

在完整音檔生成並合併後,將結果呈現給使用者。您必須同時提供以下內容:

  • 將完整草擬的 Markdown 播客腳本輸出到聊天中,讓使用者可以閱讀。
  • 提供最終 podcast_output.wav 檔案的路徑,讓他們可以收聽音檔。
  • 簡要總結播客中包含的頭條新聞。

安全性與資料揭露

此技能僅包含指令 — 本身不包含任何可執行程式碼。執行時,它會協調兩個依賴技能的腳本:

  • 執行的腳本:news-aggregator-skill/scripts/fetch_news.py(從公開來源擷取新聞)和 tts/scripts/tts.py(生成語音音檔)。執行此技能前,兩者都必須存在於本機;請檢閱它們的程式碼和 SKILL.md 以了解其網路行為和憑證需求。
  • 憑證:此技能本身不要求任何 API 金鑰或環境變數。tts 依賴項可能需要 NOIZ_API_KEY 才能使用語音複製功能(noiz 後端);若無此金鑰,訪客模式語音可直接使用。詳情請參閱 tts 技能的 SKILL.md。
  • 網路存取:所有網路呼叫均由依賴技能執行,而非此技能的指令。新聞聚合技能會從公開新聞來源擷取資料;tts 技能僅在使用 noiz 後端時聯絡 noiz.ai。
  • 寫入的檔案:podcast_script.md、line_*.wav(逐句暫存音檔)、list.txt(ffmpeg 合併清單)、podcast_output.wav(最終輸出)。所有檔案均寫入目前工作目錄。
  • 無持久狀態:此技能不會寫入組態檔案、儲存憑證或修改其他技能。

Individual skills in this repo

This repo contains 6 individual skills — each has its own dedicated page.

相關技能