OpenVINO每年都會出四個版本,其中年末的.3版本會是LTS(長期支援版本)。通常,在這版本會有比較多的支援模型文檔,由Intel的官方人員撰寫詳細的使用和安裝說明。 而2023年末,大量的生成式模型被加入文檔,其中不乏LLM(大型語言模型)和擴散模型等。但這些的原理和部署方式在2022年末版本已經有所敘述,因此我們特別挑了一個很早很早我們就在當成AI的範例,但卻一直沒實做過的語音複製模型。 本文部分資料參考自[使用OpenVoice和OpenVINO複製語音音色](https://docs.openvino.ai/2023.3/notebooks/284-openvoice-with-output.html) 由於官方文檔的過程與安裝步驟完全正確,因此本文將不討論這部分。 ![](https://github.com/openvinotoolkit/openvino_notebooks/assets/5703039/ca7eab80-148d-45b0-84e8-a5a279846b51) 語音複製本身是一個Auto-Encoder模型,主要功能是將"已有的語音音訊"音色變成樣本音訊的音色,所以無論如何需要原始音訊,可以自行錄音或者是TTS達成。OpenVoice為了方便測試,有附上一個輕便的TTS模型,我們可以利用它取得語音音訊--不過請記得,TTS並不包含在語音複製模型的本體,從上面的示意圖也可以看到TTS是位於模型外部的。 OpenVINO在這邊會優化兩個部分:TTS(非必須)以及後面音色轉換的AE部分。優化的方式我們在[邊緣裝置AI:OpenVINO](https://hackmd.io/@99playrobot/HyAC4Taa3)中有提過,如果印象薄弱的可以回頭參考一下。 雖然很遺憾,但這個模型有名的應用可能都是一些比較負面的產物,比方說幫AI生成的假影片配音或者是電話的仿聲詐騙。而比較正面的應用則有用於緬懷故人的[數位永生](https://udn.com/news/story/6853/7807654)以及[AI主播](https://www.msn.com/zh-hk/lifestyle/other/%E5%A4%AE%E8%A6%96%E8%B2%A1%E7%B6%93-ai-%E4%B8%BB%E6%92%AD%E7%99%BB%E5%A0%B4-24-%E5%B0%8F%E6%99%82%E8%A7%A3%E7%AD%94%E8%B2%A1%E7%B6%93%E5%95%8F%E9%A1%8C/ar-BB1jteb5)等等。和一般的TTS技術不同,音色複製相對不需要太多的資料,短短的幾十秒語音就足以複製,因此才有電話接起來問候個一兩句就足以複製聲音的這種現象。 和幾個長期使用者討論,雖然幾十秒的聲音就有複製的效果,但30分鐘左右的參考音訊才會有幾乎無法分辨的效果。 這個模型使用起來很簡單,而且跟其他模型相比要自訂的難度小很多,甚至不需要自行訓練僅需要更換參考的音訊檔即可。但是,要達到很好的效果相對就比較麻煩--主要是音色轉換時使用的原始音訊不容易穩定。語速、一些說話習慣以及音量的大小變化皆會被原始音訊強烈影響。若使用錄音檔來轉換,音訊檔還會包含一些微小的背景雜訊。即使克服背景雜訊問題,訓練發聲者能穩定產生指定的音訊仍是不小的功夫。 這也是為什麼雖然TTS不在語音複製模型中,但不少語音複製模型(如monking bird,或本文的openvoice)都將TTS附加在模型包中,這是為了方便使用者能更簡單穩定調整取得的聲音品質。當然我們也可以換個想法,應用在不需要,或者說比較難認出聲音瑕疵的地方,這也就是為什麼最一開始這個技術被應用在語音詐騙上的原因了。電話本身傳輸的失真就高,即使用人聲直接轉換也不容易被發現太多破綻。