【TTS】基于GRPO的流匹配文本到語音改進:F5R-TTS

論文地址:https://arxiv.org/abs/2504.02407v3

摘要

我們提出了F5R-TTS,這是一種新穎的文本到語音(TTS)系統,它將群體相對策略優化(GRPO)集成到基于流匹配的架構中。?通過將流匹配TTS的確定性輸出重新表述為概率高斯分布,我們的方法能夠無縫集成強化學習算法。?在預訓練期間,我們訓練了一個基于概率重新表述的流匹配模型,該模型源自F5-TTS和一個開源數據集。?在隨后的強化學習(RL)階段,我們采用一個由GRPO驅動的增強階段,該階段利用雙重獎勵指標:通過自動語音識別計算的詞錯誤率(WER)和通過驗證模型評估的說話人相似度(SIM)。?零樣本語音克隆的實驗結果表明,與傳統的基于流匹配的TTS系統相比,F5R-TTS在語音可懂度(WER相對降低29.5%)和說話人相似度(SIM得分相對提高4.6%)方面都取得了顯著的改進。?音頻樣本可在https://frontierlabs.github.io/F5R訪問。

Refer to caption
圖1:?我們進行了零樣本語音克隆實驗,比較了不同數據集上的三個不同模型。?
評估是從兩個關鍵角度進行的:說話人相似度(由SIM衡量)和語義準確性(由WER衡量)。?
更高的SIM值和更低的WER值表示性能更優。

1、引言

近年來,文本到語音(TTS)系統的顯著進步使得能夠生成高保真、自然的聲音和零樣本語音克隆能力。這些發展涵蓋了自回歸(AR)[1, 2, 3, 4]和非自回歸(NAR)[5, 6, 7]模型架構。?AR模型通常使用語音編解碼器將音頻編碼成離散符元,然后采用基于語言模型(LM)的自回歸模型來預測這些符元。?然而,這種方法存在推理延遲和暴露偏差的問題。?相反,基于去噪擴散或流匹配的NAR模型利用并行計算來加快推理速度,展現出強大的應用潛力。

此外,正如DeepSeek系列[8, 9, 10, 11]所示,強化學習(RL)已引發了大語言模型(LLM)研究的趨勢。?直接偏好優化(DPO)[12]和組相對策略優化(GRPO)[8]等RL方法已被證明能夠有效地使LLM輸出與人類偏好保持一致,通過反饋優化來增強生成文本的安全性和實用性。?在圖像生成領域,去噪擴散策略優化(DDPO)[13]等RL方法也已成功應用。?這種范式現已擴展到AR TTS系統:Seed-TTS[14]使用說話人相似度(SIM)和詞錯誤率(WER)作為獎勵,并結合近端策略優化(PPO)[15]、REINFORCE[16]和DPO實現了RL集成。?在一些其他的AR架構工作中,也探討了DPO及其變體[17, 18, 19, 20]。?然而,由于與LLM的根本結構差異,將RL集成到NAR架構中仍然具有挑戰性。?當前的研究沒有顯示出在基于NAR的TTS系統中成功集成RL的案例,這表明這一挑戰仍在等待可行的研究解決方案。

在本文中,我們介紹了F5R-TTS,這是一種新穎的TTS系統,它通過兩項關鍵創新將GRPO應用于流匹配模型。?首先,我們將基于流匹配模型的確定性輸出重新表述為概率序列,其中F5-TTS[7]被用作我們修改的骨干。?這種重新表述使得在后續階段能夠無縫集成RL算法。?其次,設計了一個由GRPO驅動的增強階段,使用WER和SIM作為獎勵指標,兩者都與人類感知高度相關。?實驗結果證明了該系統的有效性,與傳統的NAR TTS基線相比,在語音清晰度(WER相對降低了29.5%)和說話人一致性(SIM得分相對提高了4.6%)方面都取得了顯著改進。

本工作的關鍵貢獻如下。

  • 我們提出了一種方法,將基于流匹配的TTS模型的輸出轉換為概率表示,這使得各種強化學習算法能夠方便地應用于流匹配模型。
  • 我們成功地將GRPO方法應用于NAR-TTS模型,使用WER和SIM作為獎勵信號。
  • 我們已在零樣本語音克隆應用場景中實現了 F5R-TTS 模型,并證明了其有效性。

本文的其余部分組織如下:第 2 節描述了所提出的方法。?然后,第 3 節介紹了實驗設置和評估結果。?最后,第 4 節總結了本文。

2、提出的方法

所提出的方法將訓練過程分為兩個階段。?我們首先使用流匹配損失對模型進行預訓練,隨后使用 GRPO 改進模型。?在本節中,我們將詳細解釋如何利用 GRPO 策略來改進基于流匹配的模型。

2.1、預備知識

我們的模型主要遵循 F5-TTS?[7],這是一種具有零樣本能力的新型基于流匹配的 TTS 模型。?該模型在文本引導的語音填充任務上進行訓練。?根據流匹配的概念,目標是預測?x_1-x_0?以??(1-t)x_0+tx_1作為輸入,其中?x_1\sim?數據分布?q?(x)?和?x_0\sim N(0,1)?。標準目標函數定義為

其中?θ?參數化神經網絡?v_t

并且我們旨在使用GRPO進一步增強模型的性能,GRPO是PPO的簡化變體,它消除了價值模型,并通過基于規則或基于模型的方法計算獎勵。?懲罰項KL散度?\mathbb{D}_{KL}?之間?\pi_\theta?和?\pi_{ref}?的估計如公式所示。?

對于每個問題?q?,它根據輸出的相對獎勵計算優勢?o?在每個組內,然后通過最大化以下目標來優化策略模型?\pi_\theta?。

其中?ε?和?β?是超參數,優勢?\widehat{A}_{i,t} = \overset{\sim}{ r}_i = \frac{r_i-mean(r))}{std(r)}

2.2、輸出概率化和預訓練

Refer to caption
圖2:F5R-TTS 的主干架構,它源自基于流匹配的TTS模型。?
我們模型中最重要的區別在于修改了最終的線性層,以便準確預測每個流步驟的概率分布。

我們將模型的輸出重新表述為概率術語,以增強與GRPO的兼容性,從而能夠預測……的分布概率?x_1-x_0。?圖2顯示了模型的整體結構。?在第一階段,我們保留了流匹配目標函數。?流匹配目標是將標準正態分布中的概率路徑與近似于數據分布的分布匹配。

所提出的模型也在填充任務上進行了訓練。?在訓練過程中,模型接收流步驟?t、噪聲聲學特征?(1-t)x_0+tx_1、掩蔽聲學特征?(1-m)\bigodot x1以及完整語音的文本轉錄?T_{gt}作為輸入。?我們使用提取的梅爾譜圖特征作為訓練的聲學特征,并將文本特征填充到與聲學特征相同的長度。

所提出的模型并不直接預測……的精確值?m\bigodot (x_1 - x_0)?。我們讓模型預測均值?μ?(x)?以及方差?σ?(x)?最后一層高斯分布和參數?θ?被優化以最大化以下對數似然?x_1-x_0

簡化公式后?4,我們可以得到以下改進的目標函數

在預訓練階段,我們使用公式?5來優化模型。

2.3、使用GRPO增強模型

在預訓練階段之后,我們繼續使用GRPO來提高模型的性能。?GRPO階段的流程如圖3所示:

Refer to caption
圖3:GRPO階段的流程。?我們采用ASR模型和說話人編碼器來推導獎勵,隨后用于優化策略模型。?
KL散度被納入作為懲罰項,以增強GRPO階段的訓練穩定性。

在第二階段,我們進一步訓練預訓練模型作為策略模型?\pi_\theta?同時初始化參考模型?\pi_{ref}?使用預訓練參數。?在整個 GRPO 階段,參考模型保持凍結狀態。?在 GRPO 訓練期間,我們的 TTS 模型的前向操作與預訓練階段不同。?存在一個類似于推理的采樣操作。?策略模型?\pi_\theta?接收?x_0\sim N(0,1)?作為輸入,然后計算每個流程步驟的輸出概率。?策略模型的采樣結果?o?用于計算獎勵以及與參考模型結果相比的 KL 損失x_{ref}?.

就獎勵指標而言,我們選擇 WER 和 SIM 作為改進語義一致性和說話人相似性的主要標準,因為它們代表了語音克隆任務中最關鍵的兩個方面。?我們使用一個 ASR 模型來轉錄合成的語音,獲得轉錄文本?T_{pol}?,然后將轉錄文本與真實語音的?T_{gt}真實文本進行比較以計算 WER。?此外,我們利用說話人編碼器?Enc_{spk}?來提取合成的說話人嵌入?emb_{pol}?和真實說話人嵌入?emb_{gt}?分別來自生成的語音?o?和真實語音樣本?x_{gt}。?通過計算這些嵌入之間的余弦相似度來評估說話人相似度。

因此,GRPO獎勵被分為語義相關獎勵和說話人相關獎勵,定義如下。

總獎勵定義為:

其中?\lambda _W?和\lambda _S??是各自獎勵的權重項。

計算獎勵后,我們可以通過組相對優勢估計[8]得到優勢。

為了保持模型輸出的穩定性,GRPO還需要使用參考模型?\pi_{ref}?來提供約束。?最后,我們定義公式。?10作為第二階段的目標函數。

3、實驗

在本節中,我們的實驗重點在于驗證所提出方法在增強零樣本語音克隆任務性能方面的有效性。

3.1、數據集和實驗設置

在預訓練階段,我們使用了WenetSpeech4TTS Basic?[21],這是一個包含7226小時多說話人語料的普通話開源數據集,作為訓練集。?在GRPO階段,我們從同一數據集中隨機選擇了100小時的語音數據進行訓練。?在評估中,遵循Seed-TTS的測試設置,我們使用Seed-TTS-eval測試集(cn集)1中的參考語音合成了2020個通用樣本和400個困難樣本。?通用樣本使用純文本,而困難樣本使用難以處理的文本,例如繞口令或包含高頻重復詞語和短語的文本。?為了測試噪聲魯棒性,我們使用同一測試集中的70個含噪語音生成了140個樣本。

我們的模型架構主要遵循F5-TTS論文中描述的配置,僅對最后一層輸出層進行了修改。?在預訓練階段,模型在8個A100 40GB GPU上進行了100萬次更新訓練,批量大小為160,000幀。?在GRPO訓練階段,模型在8個A100 40GB GPU上進行了1100次更新訓練,批量大小為6400幀。?對于GRPO訓練,我們使用SenseVoice?[22]作為自動語音識別(ASR)系統來計算?R?e?w?a?r?dW?,并使用WeSpeaker?[23]作為說話人編碼器進行?R?e?w?a?r?dS?計算。

我們選擇原始F5-TTS作為我們實驗的基線。?為了證明GRPO在改進TTS模型方面的有效性,我們比較了原始F5-TTS、輸出概率化F5-TTS和所提出的方法的性能。?我們分別將它們命名為F5、F5-P和F5-R。?F5嚴格保留了原始架構和參數設置。?F5-P也是GRPO階段的預訓練模型。?我們在相同的預訓練數據集上訓練所有模型。

3.2、評估

3.2.1、可視化分析

我們嘗試可視化不同模型在零樣本語音克隆任務中的性能差異。

圖4:?通過t-SNE進行的說話人相似度可視化。?從左到右,三列分別對應F5、F5-P和F5-R。?
圖表中的每個小數字代表一個話語樣本。?不同的數字或顏色對應不同的目標說話人。?
帶星號的數字表示目標說話人的參考話語(數字代表的目標說話人)。?不帶星號的數字指的是合成的語音。?并用紅箭頭標出了一些錯誤案例。
圖5:?真實說話人話語和不同模型合成的語音的全局方差。?
在每個子圖中,橫軸表示梅爾頻譜系數數量,縱軸表示方差。?每個子圖中都有4條GV曲線,對應不同的來源。?
曲線的對應關系如圖例所示,其中gt表示ground truth(真實值)。

?我們首先使用t-SNE[24]將說話人相似度可視化到二維空間。?T-SNE可以以無監督的方式對數據(例如說話人嵌入)進行聚類。?對于此分析,我們從Seed-TTS-eval test-cn集中隨機選擇了10個未見過的說話人作為目標說話人,然后模型分別為每個說話人合成了10個話語。?我們使用WeSpeaker獲取話語的說話人嵌入,然后通過t-SNE進行可視化。?我們可以直觀地看到合成結果與真實樣本之間的相似性。?我們還可以觀察到目標說話人之間的分布差異。?如圖4所示,F5-R的結果根據目標說話人進行了很好的聚類。?同時,F5和F5-P的子圖顯示,對應于某些目標說話人的合成結果并未完全聚在一起。?這意味著F5-R的合成結果具有更好的說話人相似性。

其次,我們使用了全局方差(GV)[25]。?GV是一種可視化話語頻譜方差分布的方法。?我們分別為Seed-TTS-eval test-cn集中的4個未見過的說話人(2個女性和2個男性)生成了20個話語。?然后,我們計算了參考話語和合成話語的GV。?合成曲線和參考曲線越接近,表明性能越好。?如圖5所示,F5-R的紅色曲線比其他曲線與參考話語的藍色曲線更好地吻合,這也表明F5-R的合成結果與參考話語更相似。

3.2.2、指標分析

為評估模型性能,我們基于seed-tts-eval test-cn采用了WER和SIM作為客觀指標。?對于指標計算,我們利用了seed-tts-eval提供的官方評估工具包。?對于WER,我們使用了Paraformer-zh[26]進行轉錄。?對于SIM,我們利用了基于WavLM-large的說話人識別模型[27]提取說話人嵌入。?這些指標分別量化了語義準確性(較低的WER更佳)和說話人相似度(較高的SIM更佳)。?表1展示了這三個模型的比較評估結果。

表1:?使用WenetSpeech4TTS Basic訓練的不同方法的零樣本語音克隆目標指標比較。

就SIM而言,可以觀察到F5和F5-P在兩個不同的測試集上表現出相當的性能,F5略優于后者。?我們提出的模型在這兩個集合上都取得了優越的性能,確立了其頂級性能的地位。?值得注意的是,在通用測試集上,我們的模型以至少0.03 SIM點的優勢優于其他模型。?與F5相比,F5-R在通用測試集和困難測試集上分別取得了4.6%和5.6%的相對增長。?這表明GRPO對提高說話人相似度有積極貢獻。

就詞錯誤率 (WER) 而言,F5 和 F5-P 在兩個不同的測試集上保持高度一致。?然而,我們的模型在這兩個數據集上都取得了顯著更好的結果。?在通用測試集上,與基線相比,它實現了 29.5% 的 WER 相對降低,在困難測試集上進一步降低了 5.9%。?這些結果最終證實了 GRPO 在提高語義準確性方面的有效性。

對于噪聲魯棒性測試,我們使用噪聲話語作為參考音頻。?噪聲對所有模型的 SIM 影響微乎其微,同時導致 F5 和 F5-P 的 WER 增加。?同時,F5-R 顯示出顯著改進的噪聲魯棒性。?我們發現 F5-R 在噪聲條件下也保持了優越的節奏性能。?噪聲魯棒性測試的音頻樣本可在?https://frontierlabs.github.io/F5R?獲取。

表2:?使用我們內部數據集訓練的不同方法的零樣本語音克隆客觀指標比較。

為了證明所提出方法的泛化能力,我們在其他數據集上進行了并行實驗。?對于預訓練階段,我們使用了一個包含 10,000 小時語料庫的內部普通話數據集,主要來自廣播和有聲讀物。?我們對數據集進行了預備的基于質量的過濾。?此外,隨機選擇了一個 100 小時的子集用于 GRPO 訓練。?使用內部數據集的客觀指標比較如表?2?所示。?與F5相比,F5-R在通用測試集上的字錯誤率(WER)相對降低了18.4%,語音相似度(SIM)相對提高了3.1%。?在困難測試集上,F5-R的WER相對降低了8.1%,SIM相對提高了1.1%。?在噪聲測試集上,F5-R的WER相對降低了26.1%,SIM相對提高了2.2%。?總體結果與在WenetSpeech4TTS Basic上獲得的結果一致,表明GRPO持續提高了不同數據集上的模型性能。

總體而言,F5和F5-P的性能大體相當。?正如預期,以WER和SIM作為獎勵的GRPO使模型在語義準確性和說話人相似度方面均取得了提升。?在說話人相關獎勵組件的指導下,該模型通過上下文學習展示了增強的克隆目標說話人特征的能力。?在困難測試集上,所提出的模型在WER性能方面表現出更明顯的相對優勢。?我們假設這種改進源于WER相關的獎勵組件,該組件有效地增強了模型的語義保持能力。?然而,所有三個模型在困難測試集上都表現出性能下降,這表明文本復雜性的增加通常會降低模型的穩定性。?這一觀察結果可以作為未來優化工作的重點。

4、結論

在本文中,我們提出了F5R-TTS,它將GRPO方法引入基于流匹配的NAR TTS系統。?通過將基于流匹配模型的輸出轉換為概率表示,GRPO可以集成到訓練流程中。?實驗結果表明,與基線系統相比,所提出的方法實現了更高的SIM和更低的WER,這表明具有適當獎勵函數的GRPO對語義準確性和說話人相似性都有積極的貢獻。

我們下一步將投資于以下方向的研究。

  • 強化學習方法研究: 我們計劃探索將額外的強化學習方法(例如,PPO,DDPO)集成到NAR TTS系統中。
  • 獎勵函數優化: 為了進一步增強模型在挑戰性場景中的穩定性,我們將繼續研究優化的獎勵函數設計。
  • 數據探索: 為了更好地理解模型在大數據集上的性能,我們將利用更多訓練數據進行進一步的實驗。

參考文獻?

參見原文

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/83057.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/83057.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/83057.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

頭歌java課程實驗(Java面向對象 - 包裝類)

第1關:基本數據類型和包裝類之間的轉換 任務描述 本關任務:實現基本數據類型與包裝類之間的互相轉換。 相關知識 為了完成本關任務,你需要掌握: 1.什么是包裝類; 2.怎么使用包裝類。 什么是包裝類 在JAVA中&#x…

實現一個免費可用的文生圖的MCP Server

概述 文生圖模型為使用 Cloudflare Worker AI 部署 Flux 模型,是參照視頻https://www.bilibili.com/video/BV1UbkcYcE24/?spm_id_from333.337.search-card.all.click&vd_source9ca2da6b1848bc903db417c336f9cb6b的復現Cursor MCP Server實現是參照文章https:/…

ES6 深克隆與淺克隆詳解:原理、實現與應用場景

ES6 深克隆與淺克隆詳解:原理、實現與應用場景 一、克隆的本質與必要性 在 JavaScript 中,數據分為兩大類型: 基本類型:Number、String、Boolean、null、undefined、Symbol、BigInt引用類型:Object、Array、Functio…

新聞數據加載(鴻蒙App開發實戰)

本案例基于ArkTS的聲明式開發范式,介紹了數據請求和onTouch事件的使用。包含以下功能: 數據請求。列表下拉刷新。列表上拉加載。 網絡數據請求需要權限:ohos.permission.INTERNET 一、案例效果截圖 操作說明: 點擊應用進入主頁…

辦公效率王Word批量轉PDF 50 +文檔一鍵轉換保留原格式零錯亂

各位辦公小能手們,我跟你們說啊!在辦公的時候,咱經常會碰到要把一堆Word文檔轉成PDF格式的情況,比如說要統一文件格式、保護文檔內容或者方便分享啥的。這時候,就需要用到Word批量轉換成PDF的軟件啦。下面我就給你們好…

一張Billing項目的流程圖

流程圖 工作記錄 2016-11-11 序號 工作 相關人員 1 修改Payment Posted的導出。 Claim List的頁面加了導出。 Historical Job 加了Applied的顯示和詳細。 郝 識別引擎監控 Ps (iCDA LOG :剔除了160篇ASG_BLANK之后的結果): LOG_File 20161110.txt BLANK_CDA/ALL 45/10…

SpringAI系列4: Tool Calling 工具調用 【感覺這版本有bug】

前言:在最近發布的 Spring AI 1.0.0.M6 版本中,其中一個重大變化是 Function Calling 被廢棄,被 Tool Calling 取代。Tool Calling工具調用(也稱為函數調用)是AI應用中的常見模式,允許模型通過一組API或工具…

第六十三節:深度學習-模型推理與后處理

深度學習模型訓練完成后,如何高效地將其部署到實際應用中并進行準確預測?這正是模型推理與后處理的核心任務。OpenCV 的 dnn 模塊為此提供了強大支持,本文將深入探討 OpenCV 在深度學習模型推理與后處理中的關鍵技術與實踐。 第一部分:基礎概念與環境搭建 1.1 核心概念解析…

uniapp開發企業微信小程序時 wx.qy.login 在uniapp中使用的時候,需要導包嗎?

在 UniApp 中使用 “wx.qy.login” 不需要手動導包,但需要滿足以下條件: 一、環境要求與配置 1� 企業微信環境判斷 必須確保當前運行環境是企業微信客戶端,通過 “uni.getSystemInfoSync().environment” 判斷是否為 “wxwork”…

ONLYOFFICE文檔API:更強的安全功能

在數字化辦公時代,文檔的安全性與隱私保護已成為企業和個人用戶的核心關切。如何確保信息在存儲、傳輸及協作過程中的安全,是開發者與IT管理者亟需解決的問題。ONLYOFFICE作為一款功能強大的開源辦公套件,不僅提供了高效的文檔編輯與協作體驗…

Linux系統編程之共享內存

概述 在Linux系統中,共享內存也是一種高效的進程間通信機制,允許兩個或多個進程共享同一塊物理內存區域。通過這種方式,不同進程可以直接訪問和操作相同的數據,從而避免了數據的復制。由于數據直接在內存中共享,沒有額…

零知開源——STM32F407VET6驅動Flappy Bird游戲教程

簡介 本教程使用STM32F407VET6零知增強板驅動3.5寸TFT觸摸屏實現經典Flappy Bird游戲。通過觸摸屏控制小鳥跳躍,躲避障礙物柱體,挑戰最高分。項目涉及STM32底層驅動、圖形庫移植、觸摸控制和游戲邏輯設計。 目錄 簡介 一、硬件準備 二、軟件架構 三、…

Elasticsearch創建快照倉庫報錯處理

創建快照倉庫報錯: 根據報錯提示的信息,問題可能出在 Elasticsearch 的配置中。當你嘗試創建一個文件系統(fs)類型的快照倉庫時,雖然已經指定了 location 參數,但 Elasticsearch 仍然報錯,這通…

服務器如何配置防火墻管理端口訪問?

配置服務器防火墻來管理端口訪問,是保障云服務器安全的核心步驟。下面我將根據你使用的不同操作系統(Linux: Ubuntu/Debian/CentOS;Windows Server)介紹常用防火墻配置方法。 ? 一、Linux 防火墻配置(UFW / firewalld…

Redis最佳實踐——安全與穩定性保障之連接池管理詳解

Redis 在電商應用的連接池管理全面詳解 一、連接池核心原理與架構 1. 連接池工作模型 #mermaid-svg-G7I3ukCljlJZAXaA {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-G7I3ukCljlJZAXaA .error-icon{fill:#552222;}…

打印機無法遠程打印?可以本地打印,本地網絡打印機設置給異地使用

很多小伙伴常有打印、遠程打印的需求,特別是對于電商人、跨境電商、教師、產品經理、實驗人員等群體來說掌握這項技能可謂是能夠在很多場景下帶來便捷,大幅提升做事效率!打印機是家庭和企業經常用到的設備,很多情況下會遇到本地可…

【Linux】進程地址空間揭秘(初步認識)

10.進程地址空間(初步認識) 文章目錄 10.進程地址空間(初步認識)一、進程地址空間的實驗現象解析二、進程地址空間三、虛擬內存管理補充:數據的寫時拷貝(淺談)補充:頁表(…

深入探討redis:主從復制

前言 如果某個服務器程序,只部署在一個物理服務器上就可能會面臨一下問題(單點問題) 可用性問題,如果這個機器掛了,那么對應的客戶端服務也相繼斷開性能/支持的并發量有限 所以為了解決這些問題,就要引入分布式系統&#xff0c…

MacOS安裝Docker Desktop并漢化

1. 安裝Docker Desktop 到Docker Desktop For Mac下載對應系統的Docker Desktop 安裝包,下載后安裝,沒有賬號需要注冊,然后登陸即可。 2. 漢化 前往漢化包下載鏈接下載對應系統的.asar文件 然后將安裝好的文件覆蓋原先的文件app.asar文件…

索引的選擇與Change Buffer

1. 索引選擇與Change Buffer 問題引出:普通索引 vs 唯一索引 ——如何選擇? 在實際業務中,如果一個字段的值天然具有唯一性(如身份證號),并且業務代碼已確保無重復寫入,那就存在兩種選擇&…