網文有聲·連載聽書:連載網文按章出有聲並保持同一敘述聲

前言

連載網文要做成聽書,常見做法是一次性把已有章節全部合成,或者每更新一章就重新選聲、重新定讀音。聽衆會聽到敘述者前後不一致,人名、地名也可能讀錯。更麻煩的是,付費合成往往按塊計費,整章重跑成本高。

下面介紹 SkillHub 上的 網文有聲·連載聽書(包名 webnovel-serial-audio,由 beatra-ai 維護)。它把流程收成「先定章節臺賬與發音表 → 錄當前章 → 後續章沿用同一 voice_id」,面向連載更新而不是一次性全書。

這是什麼

網文有聲·連載聽書 是一個基於通用 SKILL.md 格式的 Agent Skill:把連載網文按章做成可繼續更新的網文有聲。工作流會先交付當前章的章節有聲,再在後續更新裏用同一把敘事聲音繼續合成。

官方收錄地址:

https://api.skillhub.cn/beatra-ai/webnovel-serial-audio

(該地址在瀏覽器直接打開可能無正文;安裝與執行以 Skill 包內說明爲準。同類說明亦見於 360 安全技能中心上的同名技能頁。)

與一次性文學有聲相對,本 Skill 明確把「連載、按章、聲音延續」當作主路徑;一次性全書可改走同系列的 ai-audiobook-narration,課程類走 course-narration-studio,個人 IP 系列走 voice-clone-series-studio。

核心功能

以下能力來自 Skill 正文,可按章覈對:

  1. 章節臺賬:維護標題、順序、分塊標籤,以及凍結前的發音表;當前章只保留可朗讀正文。
  2. 固定敘述聲:可選上傳樣本走 beatra.voices.clone 得到 voice_id,或不用樣本時用 beatra.voices.list 選目錄音色;後續章複用同一 voice_id。
  3. 按章合成與交付:通過捆綁的 scripts/mcp_client.py 調用 Beatra(beatra.speech.synthesize 等),輪詢 beatra.tasks.get,交付帶時長、用量與 billing.net_charged_credits 的章節音頻。
  4. 增量修訂:用戶聽完當前章後,僅對聽不清或讀錯的塊改文案並帶新 request ID 重提,不要求整章重生成。
  5. 計費邊界:規劃、選聲、發音表整理不計費;克隆(若使用)與各合成塊爲付費項;首章付費合成前需確認發音表、音色與當前章預估。

硬性輸入包括:至少當前章的最終可讀正文、章節順序或下一章編號、目標語言,以及章節裏出現反覆人名/術語/地名時的發音表(表爲空且確有專名時須先補齊,禁止猜測讀音)。

默認與約束摘錄:

format: "mp3"
speed: 1.0
model: "auto"(僅在各 live 卡片均支持該語言時使用)
單次 input ≤ 50,000 字符;按句或段切分,禁止句中切斷
不要把章節標題、作者有話說、括號標註等送進 input

安裝與啓用

通過 SkillHub / secure-skills 安裝

在 Agent 所在環境執行(360 技能中心與 Skill 說明中的標準話術):

npx secure-skills-cli add webnovel-serial-audio

也可把下面這句直接發給 Agent,由其檢索並安裝:

執行命令安裝此 skill: npx secure-skills-cli add webnovel-serial-audio

Beatra 賬號與鑑權

語音合成依賴 Beatra。首次需要瀏覽器登錄並授權一次;之後在同一安裝內通過捆綁客戶端發起調用,無需再配主機側 Beatra Connector,也不應以 REST/OpenAPI 作爲回退路徑。

Beatra 官方安裝說明入口(英文站):

https://beatra.ai/skills/webnovel-serial-audio/install.md

在 Cursor、Claude Code、Codex 等支持 Agent Skills 的客戶端中,安裝包後在新會話裏啓用該 Skill 即可;各客戶端差異主要體現在「如何把 npx 或安裝話術交給 Agent」,Skill 本體工作流一致。

典型用法

下面按 Skill 中的 Golden path 縮成可復現步驟;所有 Beatra 操作應走捆綁客戶端:

python3 scripts/mcp_client.py upload ./narrator-sample.wav --mime-type audio/wav
  1. 建立章節臺賬,把當前章整理成口語化短句,確認並凍結髮音表。
  2. 若用戶提供敘述者樣本:先取得克隆授權聲明,再上傳樣本,經用戶確認扣費卡片後調用 beatra.voices.clone,輪詢任務直至拿到 voice_id。
  3. 若無樣本:用 beatra.voices.list 選定目錄 voice_id(voice 字段填 ID,不要填展示名)。
  4. 用 beatra.models.list 且 capability 爲 text_to_speech,確認音色與當前章預估後,僅對當前章調用 beatra.speech.synthesize,並輪詢至結束。
  5. 交付本章 labeled 音頻;用戶驗收後保留 voice_id 與發音表,下一章落地前再確認預估並繼續同聲合成。

克隆請求體示例(須在用戶確認餘額與價格後、且只提交一次):

{
  "sample": {"type": "artifact", "artifact_id": "artifact_..."},
  "display_name": "Serial Narrator",
  "consent_attested": true,
  "model": "auto",
  "client_request_id": "opaque-webnovel-clone"
}

查詢餘額或流水時只讀調用 beatra.wallet.get / beatra.wallet.ledger;丟單恢復、409、insufficient_balance 等按 Skill 內 Recovery 與 Billing 章節處理,不在此展開。

適用場景與注意

適合:網文配音、連載小說聽書、網文章節朗讀、按更新節奏發佈的章節聽書庫;需要「一章一文件、聽序清晰、敘述聲不跳變」的團隊或個人。

注意:

  • 專名讀音必須先於首次付費 TTS 定稿;改章正文後,變更塊視爲新的付費合成。
  • 敘述者克隆樣本要求約 10–300 秒、不超過 20 MiB、乾淨單人聲;僅有文件訪問權不等於克隆授權。
  • 自動更新默認開啓,可用捆綁客戶端關閉或手動檢查:
python3 scripts/mcp_client.py update --auto off
python3 scripts/mcp_client.py update --auto on
python3 scripts/mcp_client.py update --check

更新失敗時安裝包保持可用,但不得因此自動重試已失敗的付費生成。

結尾

網文有聲·連載聽書 把連載網文聽書拆成可重複的按章流程:臺賬與發音表在前,當前章有聲先交付,後續章在同一 voice_id 上續作。若你正在維護連載作品的聽書線,可從官方收錄頁進入並安裝 webnovel-serial-audio:

https://api.skillhub.cn/beatra-ai/webnovel-serial-audio
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜