
Mycroft開源模擬技術是文本到語音引擎,它們採用書面文本並將其轉換為口語音頻。該技術的最新一代模仿2使用機器學習技術來創建一個可以說特定語言的模型,聽起來像是對其訓練的聲音。
模仿錄音室簡化了來自個人的培訓數據的收集,每個人都可以用來為模仿產生獨特的聲音。
git clone https://github.com/MycroftAI/mimic-recording-studio.gitcd mimic-recording-studiostart-windows.bat為什麼要碼頭?為了使此超級設置並運行跨平台。
git clone https://github.com/MycroftAI/mimic-recording-studio.git
cd mimic-recording-studio
docker-compose up以構建和運行(注意:您可能需要根據您的分配使用sudo docker-compose up )
另外,您可以單獨構建和運行。 docker-compose build然後docker-compose up
在您的瀏覽器中,轉到http://localhost:3000
注意: docker-compose up的第一次執行將需要一段時間,因為此命令還將構建Docker容器。隨後的docker-compose up的執行應更快地啟動。
cd backend/pip install -r requirements.txtpython run.py cd frontend/npm install ,或者yarn installnpm start ,或者yarn start在線,http://mimic.mycroft.ai託管版本需要零設置。
音頻作為WAV文件保存到backend/audio_file/{uuid}/ Directory。後端會使用FFMPEG自動修剪所有WAV文件的開始和結束。
元數據也保存到backend/audio_file/{uuid}/ 。該文件將WAV文件名映射到說話的短語。這與WAV文件一起是您開始訓練模擬2所需的。
目前,我們有一個英語語料庫,可以在backend/prompt/中找到english_corpus.csv 。要使用自己的語料庫,請遵循以下步驟。
t )作為定界符,以與english_corpus.csv相同的格式創建一個CSV文件。backend/prompt目錄中。docker-compose.yml中的CORPUS環境變量更改為您的語料庫名稱。 如果您想用英語以外的語言開發語料庫,則可以使用模擬錄音室來製作其他語言的TTS聲音錄音。如果您正在用英語以外的語言構建語料庫,我們鼓勵您選擇以下短語:
重要的是:目前,您必須重置sqlite數據庫以使用新的語料庫。如果您在另一個語料庫上錄製並想保存該數據,則可以簡單地將backend/db/中的sqlite DB重命名為另一個名稱。後端將檢測到mimicstudio.db不存在,並為您創建一個新的。您可以繼續錄製新語料庫的數據。
Web UI是使用JavaScript構建的,並作為腳手架工具進行了反應和創建反應應用。請參閱CRA.MD,以了解有關如何使用Create-React-App的更多信息。
Web服務是使用Python,Flask作為後端框架,Gunicorn作為HTTP Weberver和SQLite作為數據庫構建的。
Docker用於容器化這兩個應用程序。默認情況下,前端使用網絡端口3000而後端使用網絡端口5000 。您可以在docker-compose.yml文件中配置這些。
注意:如果您正在運行docker-registry ,則默認情況下在端口5000上運行,因此您需要更改所使用的端口。
創建聲音需要可實現但巨大的努力。一個人需要記錄15,000-20,000個短語。為了獲得最佳的模仿聲音,錄音需要保持清潔和一致。為此,請遵循以下建議:
模擬錄製局局將在/後端/db/下的SQLite數據庫文件中寫入所有記錄。可以使用DBEAVER等數據庫工具打開。
數據庫包括兩個表。

所有錄音都持續在此表中
該數據庫可用於查詢您的錄音。
以下是一些示例查詢:
-- List all recordings
SELECT * FROM audiomodel;
-- Lists recordings from january 2020 order by phrase
SELECT * FROM audiomodel WHERE created_date BETWEEN ' 2020-01-01 ' AND ' 2020-01-31 ' ORDER BY prompt;
-- Lists number of recordings per day
SELECT DATE (created_date), COUNT ( * ) AS RecordingsPerDay
FROM audiomodel
GROUP BY DATE (created_date )
ORDER BY DATE (created_date)
-- Shows average text length of recordings
SELECT AVG (LENGTH(prompt)) AS avgLength FROM audiomodel查詢SQLITE數據庫的方法有很多。例如,在特定時間範圍內尋找錄音可能有助於刪除在不良環境中製作的錄音。
使用相同的SQLITE數據庫文件可以使用多個揚聲器使用模擬記錄工作組。
該表提供以下每個發言人的信息:
這些值用於計算指標。例如,與以前的錄音相比,語言節奏可能表明錄製的短語太快還是緩慢。
查詢表“ usermodel”以獲取包括uuid在內的揚聲器列表以及其中一些記錄統計信息。
SELECT user_name AS [name], uuid FROM usermodel;
用於記錄您的短語的瀏覽器持續使用了用戶的uuid和localStorage中的name ,以使其與sqlite和filesystem同步。
如果出現問題,並且您的瀏覽器會在模仿錄製局部使用/更改UUID映射,則可能很難繼續上一個錄製會話。然後在瀏覽器的localstorage中更新以下兩個屬性:
在您的瀏覽器中打開Mimic recording-studio,跳到Web-Developter選項,LocalStorage並將名稱和UUID設置為原始值。

之後,您應該能夠在沒有進一步問題的情況下繼續上一個錄製會議。
我們歡迎您向Mycroft捐贈的語音捐贈,以用於文本到語音應用程序。如果您想提供您的語音錄音,則必須根據CCC0 CC0公共領域許可證將其許可給我們,以便我們可以在TTS聲音中使用它們 - 這是衍生作品。如果您準備捐贈您的語音錄音,請發送電子郵件至[email protected]。
公關很高興被接受!
您可以通過模擬錄音室獲得幫助和支持;