烏龜是一個文本到語音程序,具有以下優先級:
此存儲庫包含以推理模式運行烏龜TTS所需的所有代碼。
COLAB是嘗試此操作的最簡單方法。我整理了一個筆記本,您可以在此處使用:https://colab.research.google.com/drive/1wvvqupqwidbuvew.wounglpghu3hg_cbr? usp = sharing
如果您想在自己的計算機上使用它,則必須有一個NVIDIA GPU。
首先,使用以下說明安裝pytorch:https://pytorch.org/get-started/locally/。在Windows上,我強烈建議使用Conda安裝路徑。有人告訴我,如果您不這樣做,您將花費大量時間來追求依賴問題。
接下來,安裝烏龜及其依賴性:
git clone https://github.com/neonbjb/tortoise-tts.git
cd tortoise-tts
python setup.py install如果您在Windows上,您還需要安裝Pysoundfile: conda install -c conda-forge pysoundfile
該腳本使您可以說一個或多個聲音的單詞。
python tortoise/do_tts.py --text " I'm going to speak this " --voice random --preset fast該腳本提供了用於閱讀大量文本的工具。
python tortoise/read.py --textfile < your text to be read > --voice random這將把文本文件分解為句子,然後一次將它們轉換為語音。它將在生成時輸出一系列的口語剪輯。生成所有夾子後,它將它們組合到一個文件中並輸出。
有時,烏龜會擰緊輸出。您可以通過重新運行的read.py 。
烏龜可以通過編程方式使用,就像這樣:
reference_clips = [ utils . audio . load_audio ( p , 22050 ) for p in clips_paths ]
tts = api . TextToSpeech ()
pcm_audio = tts . tts_with_preset ( "your text here" , voice_samples = reference_clips , preset = 'fast' )烏龜經過專門訓練,成為多揚聲器模型。它通過諮詢參考剪輯來實現這一目標。
這些參考剪輯是您提供的演講者的錄音,以指導語音生成。這些剪輯用於確定輸出的許多屬性,例如語音的音調和音調,說話速度,甚至是Lisp或口吃等說話缺陷。參考剪輯還用於確定音頻輸出的非Voice相關方面,例如音量,背景噪聲,記錄質量和混響。
我提供了一個隨機生成語音的功能。這些聲音實際上並不存在,並且每次運行時都會隨機。結果非常有趣,我建議您與之一起玩!
您可以通過將“隨機”作為語音名稱傳遞來使用隨機語音。烏龜將照顧其餘的。
對於ML空間中的那些:這是通過將隨機向量投射到語音條件潛在空間中創建的。
此存儲庫帶有幾種預包裝的聲音。用“ train_”準備的聲音來自訓練集,表現遠勝於其他訓練。如果您的目標是高質量的演講,我建議您選擇其中一個。如果您想看看烏龜可以做什麼模仿零射擊,請看看其他人。
要添加新的聲音為烏龜,您將需要執行以下操作:
如上所述,您的參考剪輯對烏龜的產出有深遠的影響。以下是挑選好剪輯的一些技巧:
烏龜主要是一種自迴旋解碼器模型,並結合了擴散模型。這兩者都有很多旋鈕,可以將我抽像出來的旋轉,以便於使用。我通過使用設置的各種排列生成數千個剪輯來實現這一目標,並使用指標來衡量其效果。我將默認設置設置為我能找到的最佳總體設置。對於特定的用例,使用這些設置可能有效(很可能我錯過了一些東西!)
這些設置在包裝有烏龜的普通腳本中不可用。但是,它們在API中可用。有關完整列表,請參見api.tts 。
有些人發現有可能用烏龜及時進行工程!例如,您可以在文本之前包括“我真的很難過”之類的東西來喚起情感。我構建了一個自動修訂系統,您可以用來利用它。它可以通過試圖在括號包圍的提示中編輯任何文本來起作用。例如,提示“ [我真的很難過,]請餵我。”只會說“請餵我”(令人難過的音調)。
烏龜通過單獨通過產生潛在點的小s子模型將參考剪輯攝入參考剪輯,然後佔據所有產生的潛在潛在的潛伏期的平均值。我進行的實驗表明,這些點潛在的表現力很大,從語氣到口語速度到語音異常的一切都影響了一切。
這使自己有些整潔的技巧。例如,您可以將飼料兩種不同的聲音結合在一起,並輸出它認為這兩個聲音的“平均值”聽起來像。
使用腳本get_conditioning_latents.py為安裝的語音提取條件潛在。該腳本將將潛伏期傾倒到.pth Pickle文件。該文件將包含一個元組(AutoreGreliction_Latent,diffusion_latent)。
或者,使用api.texttospeech.get_conditioning_latents()獲取潛伏期。
與它們一起玩耍後,您可以使用它們來通過在Voices中創建一個子目錄/帶有單個“ .pth”文件,該文件包含醃製潛在的潛伏期作為元組(AutoreGreseregryse_latent_latent,diffusion_latent)。
出於擔心該模型可能被濫用的擔憂,我建立了一個分類器,該分類器講述了音頻剪輯來自烏龜的可能性。
該分類器可以在任何計算機上運行,用法如下:
python tortoise/is_this_from_tortoise.py --clip=<path_to_suspicious_audio_file>
該模型在此存儲庫中的結果/和聲音/文件夾的內容上具有100%精度。儘管如此,將此分類器視為“強信號”。分類器可以被愚弄,並且該分類器也並非不可能表現出誤報。
烏龜TTS的靈感來自Openai的Dalle,應用於語音數據並使用更好的解碼器。它由5個單獨的模型組成:https://nonint.com/2022/04/25/tortoise-architectural-design-doc/