dots.tts.edit V1.1:小紅書的語音編輯模型 改一句話不用重錄 組合編輯成功率 42.92%
更新時間:2026-11-14 08:41:03 發布時間:6小時前 閱讀:12次
dots.tts.edit V1.1 是小紅書開源的語音編輯模型,程式碼與權重都是 Apache-2.0。用法是拿現成錄音,把要改的字句寫成帶標籤的指令提交,模型只重新生成被改動的那一段,其餘波形與音色保持原樣,不用重錄整條音訊。在官方基準 doteBench 上,組合編輯整條指令全部完成的成功率是 42.92%,同表最高開源基線是 18.33%;支援中英文與多說話人,一次生成可同時執行文字替換、情緒、語速和停頓的多處修改。
dots.tts.edit V1.1 改的是錄音裡的區域性片段
dots-studio-dots-tts-edit.hf.space 首屏(截圖日期 2026-11-13),示例素材是一段中英混說的雙人錄音
- 任務是改已有錄音,不是重新合成。整段合成會得到一條新音訊,編輯動的是原檔案裡的幾個字或幾秒鐘。
- 輸入有三樣:源音訊、帶標籤的編輯指令、輸出路徑。源轉錄與目標轉錄可以不給,模型從指令裡推導。
- 四類控制寫進同一套介面:文字、情感、音高與語速、停頓。組合編輯指這四類裡的幾項在同一次生成裡一起改。
- 有聲書、廣播劇這類多角色配音的素材,過去改一個字要重錄整段,編輯模型把改動限制在被選中的片段內。
- 倉庫 studio-dots-ai/dots.tts 裡放著語音合成與語音編輯兩套程式碼,建倉時間是 2026 年 6 月 4 日,11 月 13 日抓到 1,420 star、148 fork。
- README 的記錄是 2026 年 8 月首發 dots.tts.edit,9 月放出 doteBench V1.0,10 月上線 V1.1,新增自由形式的風格描述編輯,並改進了韻律與情感編輯。中文發佈稿另給了中英混說的雙人演示與試聽頁面。
dots.tts.edit V1.1 的指令按轉錄位置綁定
- 指令是半形式化的 XML 標籤,標簽名表示操作類型,屬性寫參數,標籤位置表示作用在哪段文字上。
- 文字改動有三個標籤:
<sub targ="replacement"> 替換、<del> 刪除、<ins> 插入。
- 聲音側五個:
<emo> 情感可以帶 desc 屬性寫自然語言描述,<pitch> 音高、<rate> 語速、<pause/> 停頓、<spk_transfer/> 說話人遷移。
- 另有
<enhance> 與 <bg>,分別處理語音增強與背景聲。
- 論文把這種寫法叫 transcript-grounded,意思是指令綁在轉錄的文字位置上,不綁時間戳。
- 不帶時間戳的後果是模型不需要外部對齊器,也不需要單獨預測時長,靠結束信號 EOS 決定什麼時候停。
- 論文裡對比過自然語言指令:同樣初始化、同樣資料、同樣步數下,XML 版本把 Text Hard 的編輯錯誤從 14.73% 降到 14.45%,停頓方向準確率從 69.33% 提到 92.00%,組合編輯的整條成功率從 26.67% 提到 37.92%。
- 指令寫錯或推匯出空轉錄的請求會被拒絕,不進入生成。
dots.tts.edit V1.1 的模型結構沿用 dots.tts
- 初始化自 dots.tts 的 2B 參數 checkpoint,編輯與合成共用一套參數,編輯時多看源文字、源語音、指令和目標文字四個條件。
- 主幹是 Qwen2.5-1.5B 語言模型、24 層語義編碼器、18 層自迴歸流匹配 DiT,DiT 作用在凍結的 48 kHz AudioVAE 的 4 幀 patch 上。
- 音色條件來自 512 維 CAM++ 說話人編碼器,用的是 VoxCeleb 訓練的權重,這一層在訓練中不更新。
- 全流程沒有離散 token,語音在連續隱空間裡生成,凍結的 AudioVAE 工作在 48 kHz。
- 訓練資料按操作類別分開造:文字約 1,100 萬對、情感約 1,000 萬對、韻律約 800 萬對、停頓約 500 萬對。
- 編輯資料與合成資料按 24:2:2:1.2:0.7 的比例混合,合成部分取自基座用的 150 萬小時語料,作用是讓模型在區域性編輯監督之外繼續接觸整句合成樣本。
- 60% 的編輯樣本由兩到三段獨立音訊拼接而成,總長不超過 40 秒,其中包含多說話人拼接,用來訓練每位說話人的特徵都留在原處。
- 最佳化器 AdamW,學習率 2.0×10⁻⁵,WSD 調度,1,000 步線性預熱再加 15,000 步衰減到峯值的 15%。
dots.tts.edit V1.1 的 doteBench 有五類編輯
論文 Figure 1,doteBench 共 2,081 個用例,單任務 1,841 個、組合 240 個
- 基準共 2,081 個用例,中英雙語,1,487 個來自真實錄音、594 個來自合成語音。
- 五類分別是文字、情感、韻律、停頓、組合,前四類各測一種操作,組合類把兩類到四類操作放進同一條素材。
- 每類都報三個維度:指令執行看要求改的地方有沒有改對,區域性保持看沒被指定的區域內容、時長、音高、說話人是否原樣,音訊品質用 UTMOS 打分。
- 文字分 Easy 與 Hard 兩檔,Hard 的上下文更長、替換片段更大、且一條指令裡含多處文字操作。
- 情感分 Neutral 與 Intense 兩檔,Neutral 用中性錄音當源,Intense 用強情感合成音訊當源,每檔都覆蓋整句、單段、雙段三種作用範圍。
- 韻律測音高與語速,音高請求是正負 4 個半音,語速請求是 0.8 倍與 1.25 倍,對應時長加 25% 與減 20%。
- 停頓測插入與縮短兩個方向,主指標是方向準確率,同時報時長與音高的保持情況。
- 組合類的 240 條裡,兩操作 180 條、三操作 48 條、四操作 12 條。
- 錄音來源是 LibriTTS-R、Common Voice 20.0、FLEURS、Multilingual LibriSpeech、AISHELL-3、AISHELL-1 的公開測試集。
dots.tts.edit V1.1 在四類單任務上的數字
論文 Figure 4,五個面板對應文字、情感、韻律、停頓與組合,藍橙綠三段分別是指令執行、區域性保持、音訊品質
| 項目 |
dots.tts.edit |
同表最高開源基線 |
| 文字 Hard 編輯區 WER/CER |
14.45% |
19.47%(Step-Audio-EditX) |
| 文字 Hard 未編輯區 WER/CER |
0.85% |
0.85%(與 Step-Audio-EditX 並列) |
| 情感 Neutral 準確率 |
37.98% |
27.40%(AuK) |
| 情感 Intense 準確率 |
8.50% |
6.25%(AuK) |
| 韻律 時長 L1 |
0.054 秒 |
0.201 秒(Ming-UniAudio) |
| 韻律 音高 L1 |
1.51 半音 |
3.75 半音(FireRedTTS3-Instruct) |
| 停頓 方向準確率 |
92.00% |
51.17%(Step-Audio-EditX) |
- 文字 Hard 那檔,編輯區錯誤率 14.45%,比第二名低 5.02 個百分點;同表 AuK 是 103.67%、Ming-UniAudio 是 145.97%,這兩家的錯誤率都超過 100%,輸出的內容與目標文字對不上。
- Easy 檔的編輯區錯誤率 1.74%,未編輯區 0.78%。
- 情感這一項整體偏低:Neutral 37.98%、Intense 8.50%,參與對比的系統沒有一家在 Neutral 檔超過四成、在 Intense 檔超過一成。源音訊本身帶強情感、再換另一種強情感,是所有對比系統都沒解決的問題。
- 韻律的兩項誤差是時長 0.054 秒、音高 1.51 半音,區域性保持的 WDTW-Dur 是 6.00%、WDTW-F0 是 1.57 半音。
- 停頓方向準確率 92.00%,第二名 51.17%,相差 40.83 個百分點。
- 24 名雙語志願者做了聽測,70 個案例、每例 4 人。指令遵循的平均偏好 1.538、區域性保持 0.735、音訊品質 0.598,前兩項在參與對比的系統裡最高,音訊品質排第二,Step-Audio-EditX 的 1.010 更高。
dots.tts.edit V1.1 的組合編輯成功率是 42.92%
- 一次生成模式下一次調用完成整條指令,操作級成功 68.12%、整條全對 37.92%;同表最高開源基線是 MiMo-Audio-Instruct 的 31.70% 與 9.58%。
- 改成逐步執行,先做文字再做聲音操作,每一步都拿上一步的輸出當輸入,整條全對的比例升到 42.92%,情感單項從 21.01% 升到 33.33%。
- 同表 AuK 逐步執行是 18.33%,Step-Audio-EditX 是 7.50%,FireRedTTS3-Instruct 是 9.17%。
- 一次生成的聲音相似度是 0.908、UTMOS 3.37,逐步執行是 0.839 與 3.29。
- 操作級看,一次生成的停頓是 90.58%、韻律 83.33%,逐步執行是 88.41% 與 77.54%。
- 資料管線當基線時能到 72.10% 與 45.83%,它是每種操作單獨用一套工具、把原波形其餘部分保留下來拼出來的,屬於工程路徑,不是單模型。
- 文字 Hard 這類長替換上,模型與資料管線的編輯區錯誤率是 14.45% 對 24.87%。
dots.tts.edit V1.1 在 SpeechEditBench 上的三項最佳
論文 Table 19,括號內是目標成功率,N/T 表示該介面不支援這一類,短橫線表示未報告
- 這是第三方基準,聯合成功率的口徑與本家 doteBench 不同,只能橫向看同一張表。
- 內容是 94.00%,開源系統裡最高,AuK 是 91.83%;閉源的 GPT-Realtime 是 96.67%。
- 韻律是 91.50%,比同表所有開源與閉源系統都高,GPT-Realtime 是 63.94%、Gemini-Live 是 65.17%。
- 情感是 15.07%,開源裡最高,但閉源的 Gemini-Live 有 27.79%、GPT-Realtime 有 14.57%。
- 風格這一項 V1.1 新增,得分 43.50%,低於 Gemini-Live 的 63.67% 與 GPT-Realtime 的 68.67%,也低於 Step-Audio-EditX 的 49.67%。
- 副語言 11.25%、聲學 31.80%、組合 7.25%,組合這一項與 MiMo-Audio-Instruct 的 7.30% 相差 0.05 個百分點。
- 只評了 3,680 個請求,就是組件能對映到模型控制項的那些。說話人遷移、咳嗽笑聲、音效插入不在覆蓋範圍,這些請求按失敗計入分母。
dots.tts.edit V1.1 編輯後仍保留零樣本 TTS
- Seed-TTS-Eval 三個分片的結果:英文 WER 1.26%、說話人相似度 0.764,中文 CER 0.97%、相似度 0.805,中文難集 CER 6.48%、相似度 0.794。
- 與基座 dots.tts 對比,三項是 1.34%/0.768、0.96%/0.805、6.46%/0.792,差在 0.08 個百分點與 0.004 以內。
- 同一張表裡 Qwen3-TTS 1.7B 是 1.23%/0.717,VoxCPM2 2B 是 1.84%/0.753,編輯訓練沒有把語音克隆能力換掉。
- 兩者共用一套參數,同一份權重既能改錄音,也能拿一段參考音訊合成新句子。
- 合成側走 dots.tts 的命令列,編輯側走 dots.tts.edit,編輯入口有自己的步數與引導係數。
dots.tts.edit V1.1 的本地安裝與命令列
- 建 Python 3.10 到 3.12 的環境,執行
pip install dots.tts,或者克隆倉庫後 pip install -e . -c constraints/recommended.txt。
- 準備源音訊,命令列示例用的是 wav,放在本地路徑下。
- 寫指令串,把要改的字包進對應的標籤,多個操作用多個標籤並列。
- 執行命令列:
dots.tts.edit --model-name-or-path dots-studio/dots.tts.edit --source-audio input.wav --instruction 'Hello <sub targ="small">brave</sub> world.' --output edited.wav。
- 需要固定轉錄時補
--source-text 與 --target-text,兩者都填會覆蓋模型推導的結果。
- 採樣步數用
--num-steps,預設 10,可調到 32;--guidance-scale 預設 1.2。
- 說話人引導預設 auto:指令裡全是 emo、bg、enhance 時關閉,有文字、音高、語速、停頓、說話人遷移或混合編輯時打開。
- Python 側用
DotsTtsEditRuntime,from_pretrained 載入同一份權重,generate_edit 收源音訊路徑、指令、步數與引導係數。
- 第一次運行會下載權重並快取到本地,之後走快取。
- 本地編輯台要 Node 20+ 先構建前端:
cd apps/edit_playground/frontend && npm ci && npm run build,再回倉庫根目錄跑 python apps/edit_playground/app.py --model-name-or-path dots-studio/dots.tts.edit --optimize。
- 編輯台自帶的音訊預設是空的,源音訊要自己上傳;本地轉寫需要裝
.[edit_playground_asr] 並指定 --asr-model Qwen/Qwen3-ASR-1.7B。
dots.tts.edit V1.1 編輯台的預設與操作標籤
- 網頁版在 dots-studio-dots-tts-edit.hf.space,不需要裝環境,打開就能用。
- 預設列表有十項,按語言和操作分:Text · English、Emotion · English、Pitch · Mandarin、Rate · Mandarin、Pause · English、Compositional · Mandarin、Noise preservation · English、Denoising · Mandarin、Multi-speaker · English + Mandarin,還有一項 First Glance · Mandarin + English。
- 選中轉錄裡的文字後彈出操作菜單,可選 Pause、Replace、Rate、Emotion 四類,Pause 與 Emotion 要選等級,Rate 填倍率,Replace 填替換文字。
- 所有已加的操作排在編輯源下方,帶序號與刪除按鈕,末尾顯示總條數與 Apply Edit。
- 示例素材上疊了 6 個操作:插入停頓、三處替換、0.67 倍語速、生氣,一次提交一起生效。
- 右上有 Model 下拉,可以切 checkpoint;頁面頂部同時放著 Demo、arXiv、Checkpoint、GitHub、Benchmark、Data Pipeline 六個入口。
- 編輯台有 Preview 開關,打開後可以先試聽,再點 Apply Edit 提交。
- 試聽案例在 dots-studio-dots-tts-edit-demo.static.hf.space,只放音訊不放開編輯。
dots.tts.edit V1.1 沒有覆蓋的編輯類型
- 論文的侷限段寫明只研究了四類控制,說話人轉換、聲學場景編輯、方言與口音轉換要另配成對資料與評測才能擴。
- SpeechEditBench 的組合項只有 7.25%,原因是很多請求裡含模型不支援的操作,這些請求沒有從分母裡剔掉。
- Intense 檔的源音訊本身就是強情感合成語音,再換成另一種強情感時準確率只有 8.50%。
- 情感項支援 8 類固定類別,也可以加描述條件;風格項是自由形式的描述輸入,改動幅度由描述文字決定,風格一項在 SpeechEditBench 上的得分是 43.50%。
- README 的風險段寫明克隆濫用問題,建議下游配 語音深度僞造檢測、參考音訊授權策略與內容水印,並標註 AI 生成音訊。
- 訓練語料以語音為主,唱歌與語音加音效的統一生成不在這一版範圍。
- 阿拉伯語、印地語、土耳其語、越南語這類文字體系差異大的語言,錯誤率高於中英,說話人相似度不受影響。