WAAPI+TTS—語音臨時(shí)資源自動(dòng)構(gòu)建流程

前言
在大型項(xiàng)目的生產(chǎn)過程中,自動(dòng)化是很常用的手段。
在一個(gè)上百人的團(tuán)隊(duì)中,反復(fù)溝通、 來回協(xié)作,是非常容易出錯(cuò)的。使用自動(dòng)化流程取代機(jī)械化的人為操作,可以大大減少出錯(cuò)的概率,提高生產(chǎn)效率。
在工業(yè)化生產(chǎn)流程中,項(xiàng)目組往往會(huì)部署幾臺(tái)自動(dòng)構(gòu)建機(jī)、自動(dòng)打包機(jī)等用于進(jìn)行一些自動(dòng)化等操作,配合通知機(jī)制,將自動(dòng)化流程等結(jié)果反應(yīng)在某個(gè)頁面上,并提示相關(guān)人員。這使質(zhì)量把控及工作流程更高效。
音頻的生產(chǎn)也可以使用自動(dòng)構(gòu)建來完成一些機(jī)械化流程,減少人為操作和溝通:如使用構(gòu) 建機(jī)完成自動(dòng)打?Soundbank,可以避免多人協(xié)作過程中,本地生成?Soundbank?的沖突問題, 降低上傳出錯(cuò)的幾率。
在?Wwise?引擎的自動(dòng)化部分,由于官方提供了?WAAPI(之前介紹?WAAPI?的文章較多,此處不多加贅述),其使開發(fā)者能夠更方便的自動(dòng)進(jìn)行?Wwise?的內(nèi)部操作, 使用?WAAPI?配合其他工具結(jié)合,開發(fā)一些自動(dòng)化工具鏈,部署在打包機(jī)上,可使整個(gè)流程更緊湊與高效。
此處介紹利用?WAAPI?與?TTS,實(shí)現(xiàn)語音臨時(shí)資源自動(dòng)構(gòu)建的流程。
語音生產(chǎn)中的問題及優(yōu)化思路
在語音的生產(chǎn)過程中,可能會(huì)遇到配置麻煩,迭代頻率高的問題,尤其是在配音需求較多的情況下。在沒有任何工具支持的情況下,需要策劃和音頻設(shè)計(jì)師來回溝通、操作、上傳,整個(gè)過程重復(fù)性高、容易出錯(cuò),耗時(shí)且機(jī)械化:
1. 策劃上傳語音表,告知設(shè)計(jì)師;
2. 音頻設(shè)計(jì)師在?Wwise?中添加資源,同步到引擎、配置、上傳;
3. 項(xiàng)目組驗(yàn)收、測(cè)試。

解決配置問題
在工業(yè)化生產(chǎn)中,模塊化是一種常用的方法,可以減少很多重復(fù)勞動(dòng),降低?debug?成本, 方便統(tǒng)籌和快速驗(yàn)證,使團(tuán)隊(duì)中的每個(gè)人專注于自己的工作,提高開發(fā)效率。通常且大致的思路是將文字、音頻、美術(shù)表現(xiàn)及其他功能集成為一個(gè)模塊進(jìn)行配置,這樣策劃在配置文字的時(shí)候也就 順便完成了語音的配置,不需要單獨(dú)配置語音。其中,Event?名可按照規(guī)則拼寫,可提前與策劃商議。
解決溝通、Wwise?操作、上傳等機(jī)械化操作問題
說到“減少來回溝通”,最直接的就是盡可能讓機(jī)器來完成人為的協(xié)作,而語音生產(chǎn)中的協(xié)作,恰好是個(gè)非常機(jī)械化的過程,絕大部分可以用自動(dòng)化來替代。
此處介紹一種語音自動(dòng)構(gòu)建的過程:先根據(jù)項(xiàng)目情況,找到機(jī)械化的人為協(xié)作,并規(guī)劃好自動(dòng)化流程,將要執(zhí)行的過程封裝到命令行中,其中涉及到?WAAPI?和?Microsoft TTS?等相關(guān)的?API,使用的上傳和部署工具為?Perforce?和?Jenkins。
開始部署臨時(shí)語音自動(dòng)化構(gòu)建流程
制定規(guī)則
1. 確定?Event?名的拼寫規(guī)則;
2. 確保語音表的表頭具有語音名稱、語言、音色、語氣、內(nèi)容等相關(guān)信息;
3. 分別創(chuàng)建?Audio?層級(jí)和?Event?層級(jí)的?Workunit,在?Originals?的多語言目錄下創(chuàng)建一個(gè) 用于存放?AI?生成的?wav?的文件夾;
4. 試聽、選擇?TTS?提供的音色,或自己訓(xùn)練一種音色模型。
需開發(fā)的內(nèi)容
1. 將語音表轉(zhuǎn)化為?SSML(語音合成標(biāo)記語言)格式(Microsoft TTS?識(shí)別的格式)的工具;

2. TTS?文字轉(zhuǎn)語音工具;

3. 用于自動(dòng)導(dǎo)入資源、創(chuàng)建?Sound Voice?及?Event?的?WAAPI?工具;
4. p4、git?等版本管理工具相關(guān)內(nèi)容、通知機(jī)制、流程部署;
5. 前端播放邏輯。
部署構(gòu)建機(jī)
使用一臺(tái)自動(dòng)構(gòu)建機(jī)器,需安裝?Wwise?環(huán)境,將以下流程部署至機(jī)器:
1. 比對(duì)、列出語音表中增、刪、改的內(nèi)容;
2. 將有變動(dòng)的部分轉(zhuǎn)化為?SSML;
3. 執(zhí)行文字轉(zhuǎn)語音?TTS;
4. 使用?WAAPI?在?Wwise?中指定的?WorkUnit?中創(chuàng)建、更新?Voice SFX,并生成相關(guān)?Event,上傳至服務(wù)器;
5. 在相關(guān)目錄下生成?Soundbank?等游戲引擎使用的資源,上傳到服務(wù)器;

當(dāng)服務(wù)器檢測(cè)到策劃上傳語音表,則自動(dòng)執(zhí)行以上流程。
改善后的工作流
1. 日常生產(chǎn)中,只需策劃配表、上傳、等待自動(dòng)化流程、拉新,即可聽到臨時(shí)語音
2. 語音測(cè)試、debug?可以和發(fā)包同步進(jìn)行

可能會(huì)遇到的問題
整個(gè)自動(dòng)話過程會(huì)有些耗時(shí),如果語音量很大,可能會(huì)占用構(gòu)建機(jī)資源,可在特定的時(shí)間(如夜間)進(jìn)行。構(gòu)建機(jī)資源豐富的情況下,可以策劃以上傳語音表進(jìn)行。

黃超
技術(shù)音頻
心動(dòng)網(wǎng)絡(luò)
喜愛美食,享受探索新事物的過程和團(tuán)隊(duì)協(xié)作的樂趣。
