文章:01.html
本篇語音路徑:audio_tts/01
內容 Hash:a763abbc9b77fe570ac4b53941936830c23a33199ca3b05e39db39bb0c2b759c
每一篇文章使用自己的 audio_tts 子目錄;不同網頁不再共用、覆蓋語音。
新語音先產生到 audio_tts_build/文章名;全部 MP3、Timing JSON、manifest 都完成後,再以 Windows 安全逐檔發布到 audio_tts/文章名;只更新本篇,不碰其他文章。
朗讀正規化:畫面原文不變;TTS 會自動處理 LINE、NT$、千分位數字、×、=、→。若某一句有 data-tts-text,以人工指定朗讀文字為準。
智慧增量:本篇正式語音目錄裡文字 SHA 相同的 chunk 會直接沿用舊 MP3;若只是 segment 編號改變,會重建 timing JSON,不會重新合成聲音。只有真正文字變動的 chunk 才呼叫 Edge TTS。
SMART:找到本篇可重用的正式語音;相同 SHA 的 MP3 將直接沿用。 === HsiaoChen 女聲 === [1/66] REUSE audio_tts_build/01/hsiaochen/c0001(同 chunk;沿用 MP3,只重建 timing) [2/66] REUSE audio_tts_build/01/hsiaochen/c0002(同 chunk;沿用 MP3,只重建 timing) [3/66] REUSE audio_tts_build/01/hsiaochen/c0003(同 chunk;沿用 MP3,只重建 timing) [4/66] REUSE audio_tts_build/01/hsiaochen/c0004(同 chunk;沿用 MP3,只重建 timing) [5/66] REUSE audio_tts_build/01/hsiaochen/c0005(同 chunk;沿用 MP3,只重建 timing) [6/66] REUSE audio_tts_build/01/hsiaochen/c0006(同 chunk;沿用 MP3,只重建 timing) [7/66] REUSE audio_tts_build/01/hsiaochen/c0007(同 chunk;沿用 MP3,只重建 timing) [8/66] REUSE audio_tts_build/01/hsiaochen/c0008(同 chunk;沿用 MP3,只重建 timing) [9/66] REUSE audio_tts_build/01/hsiaochen/c0009(同 chunk;沿用 MP3,只重建 timing) [10/66] REUSE audio_tts_build/01/hsiaochen/c0010(同 chunk;沿用 MP3,只重建 timing) [11/66] REUSE audio_tts_build/01/hsiaochen/c0011(同 chunk;沿用 MP3,只重建 timing) [12/66] REUSE audio_tts_build/01/hsiaochen/c0012(同 chunk;沿用 MP3,只重建 timing) [13/66] REUSE audio_tts_build/01/hsiaochen/c0013(同 chunk;沿用 MP3,只重建 timing) [14/66] REUSE audio_tts_build/01/hsiaochen/c0014(同 chunk;沿用 MP3,只重建 timing) [15/66] REUSE audio_tts_build/01/hsiaochen/c0015(同 chunk;沿用 MP3,只重建 timing) [16/66] REUSE audio_tts_build/01/hsiaochen/c0016(同 chunk;沿用 MP3,只重建 timing) [17/66] REUSE audio_tts_build/01/hsiaochen/c0017(同 chunk;沿用 MP3,只重建 timing) [18/66] REUSE audio_tts_build/01/hsiaochen/c0018(同 chunk;沿用 MP3,只重建 timing) [19/66] REUSE audio_tts_build/01/hsiaochen/c0019(同 chunk;沿用 MP3,只重建 timing) [20/66] REUSE audio_tts_build/01/hsiaochen/c0020(同 chunk;沿用 MP3,只重建 timing) [21/66] REUSE audio_tts_build/01/hsiaochen/c0021(同 chunk;沿用 MP3,只重建 timing) [22/66] REUSE audio_tts_build/01/hsiaochen/c0022(同 chunk;沿用 MP3,只重建 timing) === HsiaoYu 女聲 === [23/66] REUSE audio_tts_build/01/hsiaoyu/c0001(同 chunk;沿用 MP3,只重建 timing) [24/66] REUSE audio_tts_build/01/hsiaoyu/c0002(同 chunk;沿用 MP3,只重建 timing) [25/66] REUSE audio_tts_build/01/hsiaoyu/c0003(同 chunk;沿用 MP3,只重建 timing) [26/66] REUSE audio_tts_build/01/hsiaoyu/c0004(同 chunk;沿用 MP3,只重建 timing) [27/66] REUSE audio_tts_build/01/hsiaoyu/c0005(同 chunk;沿用 MP3,只重建 timing) [28/66] REUSE audio_tts_build/01/hsiaoyu/c0006(同 chunk;沿用 MP3,只重建 timing) [29/66] REUSE audio_tts_build/01/hsiaoyu/c0007(同 chunk;沿用 MP3,只重建 timing) [30/66] REUSE audio_tts_build/01/hsiaoyu/c0008(同 chunk;沿用 MP3,只重建 timing) [31/66] REUSE audio_tts_build/01/hsiaoyu/c0009(同 chunk;沿用 MP3,只重建 timing) [32/66] REUSE audio_tts_build/01/hsiaoyu/c0010(同 chunk;沿用 MP3,只重建 timing) [33/66] REUSE audio_tts_build/01/hsiaoyu/c0011(同 chunk;沿用 MP3,只重建 timing) [34/66] REUSE audio_tts_build/01/hsiaoyu/c0012(同 chunk;沿用 MP3,只重建 timing) [35/66] REUSE audio_tts_build/01/hsiaoyu/c0013(同 chunk;沿用 MP3,只重建 timing) [36/66] REUSE audio_tts_build/01/hsiaoyu/c0014(同 chunk;沿用 MP3,只重建 timing) [37/66] REUSE audio_tts_build/01/hsiaoyu/c0015(同 chunk;沿用 MP3,只重建 timing) [38/66] REUSE audio_tts_build/01/hsiaoyu/c0016(同 chunk;沿用 MP3,只重建 timing) [39/66] REUSE audio_tts_build/01/hsiaoyu/c0017(同 chunk;沿用 MP3,只重建 timing) [40/66] REUSE audio_tts_build/01/hsiaoyu/c0018(同 chunk;沿用 MP3,只重建 timing) [41/66] REUSE audio_tts_build/01/hsiaoyu/c0019(同 chunk;沿用 MP3,只重建 timing) [42/66] REUSE audio_tts_build/01/hsiaoyu/c0020(同 chunk;沿用 MP3,只重建 timing) [43/66] REUSE audio_tts_build/01/hsiaoyu/c0021(同 chunk;沿用 MP3,只重建 timing) [44/66] REUSE audio_tts_build/01/hsiaoyu/c0022(同 chunk;沿用 MP3,只重建 timing) === YunJhe 男聲 === [45/66] REUSE audio_tts_build/01/yunjhe/c0001(同 chunk;沿用 MP3,只重建 timing) [46/66] REUSE audio_tts_build/01/yunjhe/c0002(同 chunk;沿用 MP3,只重建 timing) [47/66] REUSE audio_tts_build/01/yunjhe/c0003(同 chunk;沿用 MP3,只重建 timing) [48/66] REUSE audio_tts_build/01/yunjhe/c0004(同 chunk;沿用 MP3,只重建 timing) [49/66] REUSE audio_tts_build/01/yunjhe/c0005(同 chunk;沿用 MP3,只重建 timing) [50/66] REUSE audio_tts_build/01/yunjhe/c0006(同 chunk;沿用 MP3,只重建 timing) [51/66] REUSE audio_tts_build/01/yunjhe/c0007(同 chunk;沿用 MP3,只重建 timing) [52/66] REUSE audio_tts_build/01/yunjhe/c0008(同 chunk;沿用 MP3,只重建 timing) [53/66] REUSE audio_tts_build/01/yunjhe/c0009(同 chunk;沿用 MP3,只重建 timing) [54/66] REUSE audio_tts_build/01/yunjhe/c0010(同 chunk;沿用 MP3,只重建 timing) [55/66] REUSE audio_tts_build/01/yunjhe/c0011(同 chunk;沿用 MP3,只重建 timing) [56/66] REUSE audio_tts_build/01/yunjhe/c0012(同 chunk;沿用 MP3,只重建 timing) [57/66] REUSE audio_tts_build/01/yunjhe/c0013(同 chunk;沿用 MP3,只重建 timing) [58/66] REUSE audio_tts_build/01/yunjhe/c0014(同 chunk;沿用 MP3,只重建 timing) [59/66] REUSE audio_tts_build/01/yunjhe/c0015(同 chunk;沿用 MP3,只重建 timing) [60/66] REUSE audio_tts_build/01/yunjhe/c0016(同 chunk;沿用 MP3,只重建 timing) [61/66] REUSE audio_tts_build/01/yunjhe/c0017(同 chunk;沿用 MP3,只重建 timing) [62/66] REUSE audio_tts_build/01/yunjhe/c0018(同 chunk;沿用 MP3,只重建 timing) [63/66] REUSE audio_tts_build/01/yunjhe/c0019(同 chunk;沿用 MP3,只重建 timing) [64/66] REUSE audio_tts_build/01/yunjhe/c0020(同 chunk;沿用 MP3,只重建 timing) [65/66] REUSE audio_tts_build/01/yunjhe/c0021(同 chunk;沿用 MP3,只重建 timing) [66/66] REUSE audio_tts_build/01/yunjhe/c0022(同 chunk;沿用 MP3,只重建 timing) 暫存 manifest.json 已完成。 PUBLISH:備份本篇正式語音(Windows 安全複製模式)。 PUBLISH:同步新版 MP3 / Timing JSON;不 rename 整個資料夾。 PUBLISH:全部語音檔驗證完成,最後發布 manifest.json。 PUBLISH:本篇正式語音完整驗證通過。 PUBLISH OK:本篇 audio_tts/01 已更新完成。 RESULT:新合成 0,沿用舊 MP3 66,已完成跳過 0,失敗 0。 舊正式版本只在新版逐檔同步、manifest 發布及完整驗證成功後才刪除。