? Aivisspeech引擎: AI V OICE I系統- 文字到語音引擎
Aivisspeech引擎是基於VoiceVox引擎的日本語音合成引擎。
它內置在aivisspeech(日本語音綜合軟件)中,可以輕鬆產生情感聲音。
AudioQuery類型規格Mora類型規格更改Preset類型的規格如果您想使用AivissPeech,請訪問Aivisspeech官方網站。
此頁麵包含主要針對開發人員的信息。
以下是用戶的文檔:
與Windows,MacOS和Linux兼容的PC。
要啟動Aivisspeech引擎,您的PC至少需要3GB的免費內存(RAM)。
提示
桌面應用程序AivissPeech僅在Windows和MacOS上支持。
同時,ubuntu/debian linux也可以使用語音合成API服務器Aivisspeech引擎。
筆記
我們尚未通過Intel CPU積極驗證Mac上的操作。
具有Intel CPU的Mac已經停產,準備驗證和建立環境變得越來越困難。我們建議盡可能多地在帶有蘋果矽的Mac上使用此產品。
警告
在Windows 10上,我們僅檢查版本22H2的操作。
有報導稱,Aivisspeech引擎崩潰並且無法從沒有支持的Windows 10的舊版本開始。
從安全角度來看,我們強烈建議您在使用該服務之前僅使用Windows 10環境更新到最低版本22H2。
Aivisspeech引擎支持AIVMX(onn X的AI Vis v oice M Odel)( .aivmx )格式中的語音合成模型文件。
AIVM ( AI Vis v oice M Odel) / AIVMX ( AI Vis v oice M Odel for Onn X )是AI語音合成模型的開放文件格式,該模型結合了預訓練的模型,超參數,樣式矢量,樣式矢量,揚聲器,揚聲器,揚聲器元數據(名稱,概述,概述,概述,許可,ICONS,ICONS,ICONS,ICONS,ICONS,ICONS,語音樣本等) 。
有關AIVM規格和AIVM/AIVMX文件的更多信息,請參閱AIVIS項目中開發的AIVM規格。
筆記
“ AIVM”也是AIVM/AIVMX格式規格和元數據規範的一般術語。
具體來說,AIVM文件是“添加了具有AIVM元數據的SafetEnsors格式”中的模型文件,並且AIVMX文件是“添加了AIVM Metadata”的“ ONNX格式”中的模型文件。
“ AIVM元數據”是指與AIVM規範中定義的訓練模型相關的各種元數據。
重要的
Aivisspeech引擎也是AIVM規範的參考實現,但故意設計僅用於支持AIVMX文件。
這消除了對Pytorch的依賴,減少了安裝大小,並提供了使用ONNX運行時快速推斷。
提示
AIVM Generator允許您從現有語音合成模型中生成AIVM/AIVMX文件,並編輯現有AIVM/AIVMX文件的元數據!
可用於以下模型體系結構的AIVMX文件:
Style-Bert-VITS2Style-Bert-VITS2 (JP-Extra) 筆記
AIVM元數據規範使您可以定義多語言揚聲器,但是Aivisspeech引擎(如VoiceVox引擎)僅支持日本語音綜合。
因此,即使您使用支持英語或中文的語音綜合模型,也無法執行日語以外的語音綜合。
將AIVMX文件放在每個OS的以下文件夾中:
C:Users(ユーザー名)AppDataRoamingAivisSpeech-EngineModels~/Library/Application Support/AivisSpeech-Engine/Models~/.local/share/AivisSpeech-Engine/Models實際的文件夾路徑將顯示為Models directory:啟動Aivisspeech引擎後立即在日誌中顯示。
提示
使用AivissPeech時,您可以輕鬆地從AivissPeech UI屏幕上添加語音合成模型!
對於最終用戶,我們建議您使用此方法添加語音綜合模型。
重要的
開發版本的部署文件夾(如果不使用Pyinstaller構建)不是AivisSpeech-Engine ,也不是AivisSpeech-Engine-Dev 。
Aivisspeech引擎提供有用的命令行選項,例如:
--host 0.0.0.0允許從同一網絡中的其他設備訪問Aivisspeech引擎。--cors_policy_mode all允許所有域中的CORS請求。--load_all_models預訂所有安裝的語音合成模型。--help以顯示所有可用選項的列表和描述。還有許多其他選擇。有關詳細信息,請參閱--help選項。
提示
使用--use_gpu選項執行時,它可以在Linux上使用Windows和Nvidia GPU(CUDA)上的DirectML進行高速語音合成。
此外,在Windows環境中,可以在只有內置CPU的GPU(IGPU)上執行DirectML推理,但是在大多數情況下,它比CPU推斷要慢得多,因此不建議這樣做。
有關更多信息,請參閱常見問題。
筆記
默認情況下,AivissPeech引擎可與端口號10101一起使用。
如果它與其他應用程序發生衝突,則可以使用--port選項將其更改為任何端口號。
警告
與VoiceVox引擎不同,Aivisspeech引擎未實現某些選項。
在Windows/MacOS上,您可以自己安裝AivissPeech引擎,但是啟動Aivisspeech引擎(隨附Aivisspeech控制台)本身更容易。
使用AivissPeech發貨的AivissPeech引擎run run.exe的路徑如下:
C:Program FilesAivisSpeechAivisSpeech-Enginerun.exeC:Users(ユーザー名)AppDataLocalProgramsAivisSpeechAivisSpeech-Enginerun.exe 。/Applications/AivisSpeech.app/Contents/Resources/AivisSpeech-Engine/run~/Applications/AivisSpeech.app/Contents/Resources/AivisSpeech-Engine/run 。 筆記
默認模型(約250MB)和推理所需的BERT模型(大約1.3GB)將在第一個啟動時自動下載,因此該初創公司最多需要幾分鐘才能完成。
請等待一段時間,直到創業完成。
要將語音綜合模型添加到Aivisspeech引擎中,請參閱位於位置。
您還可以通過單擊AivissPeech中的“設置”>“管理語音合成模型”來添加它。
在Linux + NVIDIA GPU環境中運行時,Onnx運行時支持的CUDA/CUDNN版本必須與主機環境的CUDA/CUDNN版本匹配,並且操作條件嚴格。
具體而言,Aivisspeech發動機使用的ONX運行時需要CUDA 12.x / cudnn 9.x或更高。
Docker的工作原理不管主機OS環境如何,因此我們建議與Docker一起安裝它。
運行Docker容器時,請始終安裝~/.local/share/AivisSpeech-Engine to/home /home/user/.local/share/AivisSpeech-Engine-Dev /share/aivisspeech-eengine-dev在容器中。
這樣,即使您停止或重新啟動了容器,您仍然可以維護已安裝的語音合成模型和BERT模型緩存(約1.3GB)。
要將語音合成模型添加到Docker環境中的Aivisspeech引擎,請將模型文件(.AIVMX)放在~/.local/share/AivisSpeech-Engine/Models Models中。
重要的
確保將其固定在/home/user/.local/share/AivisSpeech-Engine-Dev上。
由於Docker映像上的Aivisspeech引擎不是使用Pyinstaller構建的,因此將數據文件夾名稱命名為-Dev和AivisSpeech-Engine-Dev 。
docker pull ghcr.io/aivis-project/aivisspeech-engine:cpu-latest
docker run --rm -p ' 10101:10101 '
-v ~ /.local/share/AivisSpeech-Engine:/home/user/.local/share/AivisSpeech-Engine-Dev
ghcr.io/aivis-project/aivisspeech-engine:cpu-latestdocker pull ghcr.io/aivis-project/aivisspeech-engine:nvidia-latest
docker run --rm --gpus all -p ' 10101:10101 '
-v ~ /.local/share/AivisSpeech-Engine:/home/user/.local/share/AivisSpeech-Engine-Dev
ghcr.io/aivis-project/aivisspeech-engine:nvidia-latest當您在Bash中運行以下單線時,語音合成的WAV文件將輸出到audio.wav 。
重要的
假定Aivisspeech引擎已經事先啟動,並且Models directory:以下目錄包含與樣式ID相對應的語音合成模型(.AIVMX)。
# STYLE_ID は音声合成対象のスタイル ID 、別途 /speakers API から取得が必要
STYLE_ID=888753760 &&
echo -n "こんにちは、音声合成の世界へようこそ! " > text.txt &&
curl -s -X POST " 127.0.0.1:10101/audio_query?speaker= $STYLE_ID " --get --data-urlencode [email protected] > query.json &&
curl -s -H " Content-Type: application/json " -X POST -d @query.json " 127.0.0.1:10101/synthesis?speaker= $STYLE_ID " > audio.wav &&
rm text.txt query.json提示
有關詳細的API請求和響應規格,請參閱API文檔以及與VoiceVox API的兼容性。 API文檔始終反映最新開發版本中的變化。
您可以通過訪問http://127.0.0.1:10101/docs使用Aivisspeech引擎或正在進行的AivissPeech編輯器,查看運行Aivisspeech引擎的API文檔(Swagger UI)。
Aivisspeech發動機通常與VoiceVox引擎的HTTP API兼容。
如果您的軟件支持VoiceVox引擎的HTTP API,則應該能夠通過簡單地用http://127.0.0.1:10101 1010替換API URL來支持Aivisspeech引擎。
重要的
但是,如果您編輯從API客戶端上的/audio_query API獲得的AudioQuery內容,然後將其傳遞到/synthesis API,則由於規範的差異,可能無法正確合成語音(請參見下文)。
因此, Aivisspeech編輯器可以同時使用Aivisspeech引擎和VoiceVox引擎(使用多引擎功能時),但是您無法使用VoiceVox編輯器中的Aivisspeech引擎。
在VoiceVox編輯器中使用AivissPeech引擎大大降低了由於編輯器實現的限製而導致的語音合成質量。除了無法利用Aivisspeech引擎的唯一參數外,在調用非兼容函數時可能會發生錯誤。
我們強烈建議將其與Aivisspeech編輯器一起使用,以獲得更好的語音綜合結果。
筆記
儘管通常在一般API用例中應兼容,但除了以下內容以外,可能存在不兼容的API,因為具有根本不同模型架構的語音合成系統被強行包含在同一API規範中。
如果您通過問題報告,我們將修復任何兼容性改進。
以下是VoiceVox引擎對API規格的更改:
AIVM清單中包含的AIVMX文件中包含的揚聲器風格的本地ID按序列號管理,從每個說話者開始為0。
在樣式bert-vits2體系結構的語音綜合模型中,此值與模型的超參數data.style2id的值匹配。
另一方面,VoiceVox Engine的API並未指定揚聲器uuid( speaker_uuid ),並且僅將樣式ID( style_id )傳遞給語音合成API,也許是由於歷史原因。
VoiceVox引擎具有固定的揚聲器和样式,因此開發團隊能夠唯一地管理“樣式ID”。
同時,Aivisspeech引擎允許用戶自由添加語音合成模型。
因此,無論添加哪種語音綜合模型,VoiceVox API兼容的“樣式ID”都必須是唯一的。
這是因為如果值不是唯一的,那麼當添加新的語音合成模型時,現有模型中包含的揚聲器樣式和样式ID可能會重疊。
因此,Aivisspeech引擎在AIVM上結合了揚聲器UUID和样式ID,以生成與VoiceVox API兼容的全球唯一“樣式ID”。
特定的生成方法如下:
警告
因此,啟用VoiceVox API的軟件可能會出現意外問題,該軟件不認為“樣式ID”中包含32位簽名的整數。
警告
不同的揚聲器樣式ID可以重疊(碰撞)的可能性極低,因為它們犧牲了揚聲器UUID的全球唯一性,以適合32位簽名的整數範圍。
在這一點上,重複樣式ID沒有解決方法,但實際上,在大多數情況下,這並不是問題。
提示
可以從/speakers API中獲得aivisspeech引擎自動生成的VoiceVox API兼容的“樣式ID”。
此API返回Aivisspeech引擎上安裝的揚聲器信息列表。
AudioQuery類型規格AudioQuery類型是通過指定文本或音素序列來執行語音綜合的查詢。
VoiceVox引擎中AudioQuery類型的主要變化如下:
intonationScale字段的含義不同。intonationScale時:intonationScale為0.0至1.0,則style-bert-vits2對應於0.0至1.0的範圍。intonationScale為1.0至2.0,則style-bert-vits2對應於1.0至10.0的範圍。tempoDynamicsScale字段。tempoDynamicsScale時,如下所示:tempoDynamicsScale為0.0至1.0,則style-bert-vits2對應於0.0至0.2的範圍。tempoDynamicsScale為1.0至2.0,則style-bert-vits2對應於0.2至1.0的範圍。pitchScale場的規格不同。pauseLength和pauseLengthScale字段。kana場的規格不同。有關更改的更多信息,請參見model.py。
Mora類型規格更改Mora類型是代表語音文本的毛拉的數據結構。
提示
莫拉是實際發音時最小的聲音分組單位(例如“ a”,“ ka”或“ o”)。
Mora類型不單獨用於API請求響應,並且始終通過AudioQuery.accent_phrases[n].moras或AudioQuery.accent_phrases[n].pause_mora間接使用。
VoiceVox引擎中Mora類型的主要變化如下:
pause_mora ,但在Aivisspeech引擎中,它被視為正常的Moras。text是相同的符號, vowel設置為“ pau”。consonant / vowel字段僅讀取。text字段的價值始終用於讀取語音綜合期間的文本。consonant_length / vowel_length / pitch場。有關更改的更多信息,請參見tts_pipeline/model.py。
Preset類型的規格Preset類型是用於確定編輯器上語音合成查詢的初始值的預設信息。
這些變化通常對應於AudioQuery intonationScale / tempoDynamicsScale / pitchscale / pitchScale / pauseLength / pauseLengthScale中的字段規範中的更改。
有關更改的更多信息,請參見Preset/model.py。
警告
不支持唱歌和可取消的語音綜合API。
它作為兼容性目的的終點而存在,但始終返回501 Not Implemented 。
有關更多信息,請查看應用程序/路由器/targin.py/app/路由器/tts_pipeline.py。
/singers/singer_info/cancellable_synthesis/sing_frame_audio_query/sing_frame_volume/frame_synthesis 警告
不支持提供變形功能的/synthesis_morphing API。
由於每個說話者的語音正時正常不同,因此無法實現(它有效但無法忍受),因此始終返回400 Bad Request 。
返回是否適用於每個揚聲器/morphable_targets API是否可以使用變形。
有關更多信息,請檢查應用程序/路由器/變形。
/synthesis_morphing/morphable_targets警告
它作為兼容性目的的參數存在,但始終被忽略。
有關更多信息,請查看應用程序/路由器/targin.py/app/路由器/tts_pipeline.py。
core_version參數enable_interrogative_upspeak參數どうですか…?只需添加一個“?”在文本的末尾大聲朗讀,您可以用可疑的語調閱讀。 提示
請看一下Aivisspeech編輯的常見問題解答/問答。
intonationScale )將引起言語的突破。這是Aivisspeech引擎支持的Style-Bert-Vits2模型體系結構的當前規範。
根據揚聲器和風格,如果您過多地提高了intonationScale ,則您的聲音可能會變得奇怪,或者您最終可能會閱讀不自然的聲音。
允許您正確說話的intonationScale值的上限會因揚聲器和样式而異。適當調整值。
在Aivisspeech引擎上,我們嘗試確保正確的閱讀和重音是正確的,但是有時候不可避免地是不正確的。
在內置詞典中未註冊的單詞,例如專有名詞和人們的名字(尤其是閃閃發光的名字),通常是不正確的。
您可以通過註冊字典來更改這些單詞的閱讀方式。嘗試從Aivisspeech編輯器或API中註冊單詞。
此外,對於復合單詞和英語單詞,無論單詞的優先級如何,字典中註冊的內容都不得反映。這是當前的規範。
Aivisspeech引擎旨在以相對較短的句子(例如句子或含義分組)中的語音綜合。
因此,將長期句子一次超過1000個字符發送到/synthesis API可能會引起以下問題:
合成長句子時,我們建議將句子分開以下位置並將其發送到語音合成API。
沒有硬性限制,但是每個語音綜合最多具有500個字符是可取的。
提示
用語義休息的分隔句子往往會產生更自然的語調聲音。
這是因為將與文本內容相對應的情感表達和語調一次應用於發送給語音綜合API的整個句子。
通過正確劃分句子,您可以重置每個句子的情感表達和語調,從而產生更自然的閱讀。
僅在第一次啟動AivissPeech時才需要Internet訪問,因為下載了模型數據。
您可以在第二個或更高版本的啟動下使用PC脫機。
這可以在當前正在運行的Aivisspeech引擎配置屏幕上完成。
當您訪問http://127.0.0.1:[AivisSpeech Engine のポート番号]/setting時,Aivisspeech引擎配置屏幕將打開。
Aivisspeech引擎的默認端口號為10101 。
--use_gpu ),並且與CPU模式相比,語音仍然慢。GPU模式只能在具有內置CPU(IGPU)的PC上使用,但是在大多數情況下,它比CPU模式慢得多,因此不建議使用。
這是因為帶有內置CPU的GPU的性能低於獨立GPU(DGPU),並且不擅長像AI語音合成這樣的重處理。
另一方面,如今CPU的性能得到了顯著改善,僅CPU就可以高速產生音頻。
因此,我們建議在沒有DGPU的PC上使用CPU模式。
如果您使用的是Intel的第12代或更高版本的CPU(P-Core/E-Core混合配置),則音頻生成的性能會根據Windows的功率設置而發生巨大變化。
這是因為默認的“平衡”模式使語音生成任務更容易分配到節省電力的電子核。
使用以下步驟更改設置,以充分利用P和E芯,並更快地產生語音。
*控制面板中的“電源計劃”也具有“高性能”設置,但設置不同。
對於Intel第12代或更高版本的CPU,我們建議從Windows 11設置屏幕更改“電源模式”。
AivissPeech的目標是成為不受其使用限制的免費AI語音合成軟件。
(這取決於交付可交付的語音綜合模型的許可)至少,軟件本身不需要信用,並且可以自由使用,無論是個人,公司,商業還是非商業目的。
...但是,我也希望更多的人了解Aivisspeech。
如果您願意,如果您可以在可交付的某個地方歸功於Aivisspeech,我將很高興。 (信用格式留給您。)
它保存在以下文件夾中:
C:Users(ユーザー名)AppDataRoamingAivisSpeech-EngineLogs~/Library/Application Support/AivisSpeech-Engine/Logs~/.local/share/AivisSpeech-Engine/Logs如果發現問題,請使用以下方法之一進行報告:
GitHub問題(建議)
如果您有GitHub帳戶,請通過我們的GitHub問題進行報告,我們可以提早回复。
Twitter(x)
您可以使用#AIVISSPEECH標籤回复官方的AIVIS項目帳戶,DM或Tweet。
接觸表格
您也可以通過AIVIS項目聯繫表進行報告。
請盡可能地報告以下信息,我們將能夠更快地響應。
VoiceVox是一個巨大的軟件,如今仍在積極開發。
因此,Aivisspeech引擎正在根據以下策略開發最新版本的VoiceVox引擎:
voicevox_engine目錄,導入語句更改的差異將是巨大的,因此未執行品牌重塑。該過程與原始VoiceVox發動機明顯不同。
您必須事先安裝Python 3.11。
# Poetry と pre-commit をインストール
pip install poetry poetry-plugin-export pre-commit
# pre-commit を有効化
pre-commit install
# 依存関係をすべてインストール
poetry install該過程與原始VoiceVox發動機明顯不同。
# 開発環境で AivisSpeech Engine を起動
poetry run task serve
# AivisSpeech Engine のヘルプを表示
poetry run task serve --help
# コードフォーマットを自動修正
poetry run task format
# コードフォーマットをチェック
poetry run task lint
# typos によるタイポチェック
poetry run task typos
# テストを実行
poetry run task test
# テストのスナップショットを更新
poetry run task update-snapshots
# ライセンス情報を更新
poetry run task update-licenses
# AivisSpeech Engine をビルド
poetry run task build在基本VoiceVox引擎雙重許可中,只有LGPL-3.0將獨立繼承。
下面的文檔/以下文檔是從原始的VoiceVox引擎文檔中刪除的,而無需修改。不能保證這些文檔的內容也將與Aivisspeech引擎一起使用。
這是VoiceVox的引擎。
實際上,它是HTTP服務器,因此您可以通過發送請求來綜合文本和語音。
(編輯器是VoiceVox,核心是VoiceVox Core,可以在此處找到整體結構。)
這是根據您的需求量身定制的指南。
在此處下載相應的引擎。
請參閱API文檔。
通過運行VoiceVox引擎或編輯器,您還可以查看正在啟動的引擎的文檔。
對於未來的計劃,與VoiceVox語音合成引擎的合作也可能很有用。
docker pull voicevox/voicevox_engine:cpu-latest
docker run --rm -p ' 127.0.0.1:50021:50021 ' voicevox/voicevox_engine:cpu-latestdocker pull voicevox/voicevox_engine:nvidia-latest
docker run --rm --gpus all -p ' 127.0.0.1:50021:50021 ' voicevox/voicevox_engine:nvidia-latest使用GPU版本時,可能會根據環境發生錯誤。在這種情況下,您可以通過在docker run中添加--runtime=nvidia來解決問題。
echo -n "こんにちは、音声合成の世界へようこそ" > text.txt
curl -s
-X POST
" 127.0.0.1:50021/audio_query?speaker=1 "
--get --data-urlencode [email protected]
> query.json
curl -s
-H " Content-Type: application/json "
-X POST
-d @query.json
" 127.0.0.1:50021/synthesis?speaker=1 "
> audio.wav生成的音頻的採樣率為24,000Hz,因此有些音頻播放器可能無法播放它。
speaker指定的值是在/speakers端點處獲得的style_id 。它被任命為speaker的兼容性。
您可以通過編輯使用/audio_query獲得的語音合成查詢的參數來調整音頻。
例如,嘗試以更快的速度說話1.5倍。
echo -n "こんにちは、音声合成の世界へようこそ" > text.txt
curl -s
-X POST
" 127.0.0.1:50021/audio_query?speaker=1 "
--get --data-urlencode [email protected]
> query.json
# sed を使用して speedScale の値を 1.5 に変更
sed -i -r ' s/"speedScale":[0-9.]+/"speedScale":1.5/ ' query.json
curl -s
-H " Content-Type: application/json "
-X POST
-d @query.json
" 127.0.0.1:50021/synthesis?speaker=1 "
> audio_fast.wav“ Aquestalk風符號”是一種指定,它指定瞭如何僅使用Katakana和符號讀取。 Aquestalk這部分與原始符號不同。
Aquestalk樣式遵循以下規則:
/ 、 。僅在分開、插入靜音間隔。_放在卡納面前,那個卡納將變得沉默。'指定重音位置。所有重音詞都必須指定一個重音位置。?您可以通過添加(全寬)來發表問題對/audio_query的響應描述了引擎法官的讀數。
通過修改此過程,您可以控制聲音閱讀和口音。
# 読ませたい文章をutf-8でtext.txtに書き出す
echo -n "ディープラーニングは万能薬ではありません" > text.txt
curl -s
-X POST
" 127.0.0.1:50021/audio_query?speaker=1 "
--get --data-urlencode [email protected]
> query.json
cat query.json | grep -o -E " " kana " : " .* " "
# 結果... "kana":"ディ'イプ/ラ'アニングワ/バンノオヤクデワアリマセ'ン"
# "ディイプラ'アニングワ/バンノ'オヤクデワ/アリマセ'ン"と読ませたいので、
# is_kana=trueをつけてイントネーションを取得しnewphrases.jsonに保存
echo -n "ディイプラ'アニングワ/バンノ'オヤクデワ/アリマセ'ン" > kana.txt
curl -s
-X POST
" 127.0.0.1:50021/accent_phrases?speaker=1&is_kana=true "
--get --data-urlencode [email protected]
> newphrases.json
# query.jsonの"accent_phrases"の内容をnewphrases.jsonの内容に置き換える
cat query.json | sed -e " s/[{.*}]/ $( cat newphrases.json ) /g " > newquery.json
curl -s
-H " Content-Type: application/json "
-X POST
-d @newquery.json
" 127.0.0.1:50021/synthesis?speaker=1 "
> audio.wav您可以瀏覽用戶字典,添加,編輯和刪除API中的單詞。
您可以通過向/user_dict提交get請求來檢索用戶字典列表。
curl -s -X GET " 127.0.0.1:50021/user_dict " 您可以通過向/user_dict_word提交帖子請求將單詞添加到您的用戶字典中。
需要以下URL參數:
本文對於重音核心的位置將很有用。
〇類型的數字部分變成了重音核心位置。
https://tdmelodic.readthedocs.io/ja/latest/pages/introduction.html
成功的返回值是分配給單詞的UUID字符串。
surface= " test "
pronunciation= "テスト"
accent_type= " 1 "
curl -s -X POST " 127.0.0.1:50021/user_dict_word "
--get
--data-urlencode " surface= $surface "
--data-urlencode " pronunciation= $pronunciation "
--data-urlencode " accent_type= $accent_type " 您可以通過向/user_dict_word/{word_uuid}提交put請求來修改用戶字典中的單詞。
需要以下URL參數:
添加單詞時可以檢查word_uuid,也可以通過引用用戶字典來檢查。
如果成功,返回值為204 No Content 。
surface= " test2 "
pronunciation= "テストツー"
accent_type= " 2 "
# 環境によってword_uuidは適宜書き換えてください
word_uuid= " cce59b5f-86ab-42b9-bb75-9fd3407f1e2d "
curl -s -X PUT " 127.0.0.1:50021/user_dict_word/ $word_uuid "
--get
--data-urlencode " surface= $surface "
--data-urlencode " pronunciation= $pronunciation "
--data-urlencode " accent_type= $accent_type " 您可以通過將刪除請求提交到/user_dict_word/{word_uuid}中刪除用戶字典中的單詞。
添加單詞時可以檢查word_uuid,也可以通過引用用戶字典來檢查。
如果成功,返回值為204 No Content 。
# 環境によってword_uuidは適宜書き換えてください
word_uuid= " cce59b5f-86ab-42b9-bb75-9fd3407f1e2d "
curl -s -X DELETE " 127.0.0.1:50021/user_dict_word/ $word_uuid " 您可以在引擎設置頁面上的“導出和導入用戶詞典”部分中導入和導出用戶詞典。
您還可以使用API導入和導出用戶詞典。
使用POST /import_user_dict進行導入和GET /user_dict導出。
有關論點的詳細信息,請參閱API文檔。
您可以在用戶目錄中編輯presets.yaml 。
echo -n "プリセットをうまく活用すれば、サードパーティ間で同じ設定を使うことができます" > text.txt
# プリセット情報を取得
curl -s -X GET " 127.0.0.1:50021/presets " > presets.json
preset_id= $( cat presets.json | sed -r ' s/^.+"id":s?([0-9]+?).+$/1/g ' )
style_id= $( cat presets.json | sed -r ' s/^.+"style_id":s?([0-9]+?).+$/1/g ' )
# 音声合成用のクエリを取得
curl -s
-X POST
" 127.0.0.1:50021/audio_query_from_preset?preset_id= $preset_id "
--get --data-urlencode [email protected]
> query.json
# 音声合成
curl -s
-H " Content-Type: application/json "
-X POST
-d @query.json
" 127.0.0.1:50021/synthesis?speaker= $style_id "
> audio.wav/speakers中找到speaker_uuidid不得重複/synthesis_morphing基於以兩種不同樣式合成的聲音生成變形的音頻。
echo -n "モーフィングを利用することで、2種類の声を混ぜることができます。 " > text.txt
curl -s
-X POST
" 127.0.0.1:50021/audio_query?speaker=8 "
--get --data-urlencode [email protected]
> query.json
# 元のスタイルでの合成結果
curl -s
-H " Content-Type: application/json "
-X POST
-d @query.json
" 127.0.0.1:50021/synthesis?speaker=8 "
> audio.wav
export MORPH_RATE=0.5
# スタイル2種類分の音声合成+WORLDによる音声分析が入るため時間が掛かるので注意
curl -s
-H " Content-Type: application/json "
-X POST
-d @query.json
" 127.0.0.1:50021/synthesis_morphing?base_speaker=8&target_speaker=10&morph_rate= $MORPH_RATE "
> audio.wav
export MORPH_RATE=0.9
# query、base_speaker、target_speakerが同じ場合はキャッシュが使用されるため比較的高速に生成される
curl -s
-H " Content-Type: application/json "
-X POST
-d @query.json
" 127.0.0.1:50021/synthesis_morphing?base_speaker=8&target_speaker=10&morph_rate= $MORPH_RATE "
> audio.wav在附加信息中獲取promait.png的代碼。
(我正在使用JQ來解析JSON。)
curl -s -X GET " 127.0.0.1:50021/speaker_info?speaker_uuid=7ffcb7ce-00ec-4bdc-82cd-45a8889e43ff "
| jq -r " .portrait "
| base64 -d
> portrait.png/cancellable_synthesis如果斷開通信,請立即釋放計算資源。
(在/synthesis中,即使斷開通信,語音綜合直到結束)
該API是一個實驗功能,除非在引擎啟動時在參數中指定--enable_cancellable_synthesis ,否則將不會啟用。
語音合成所需的參數與/synthesis相同。
echo -n ' {
"notes": [
{ "key": null, "frame_length": 15, "lyric": "" },
{ "key": 60, "frame_length": 45, "lyric": "ド" },
{ "key": 62, "frame_length": 45, "lyric": "レ" },
{ "key": 64, "frame_length": 45, "lyric": "ミ" },
{ "key": null, "frame_length": 15, "lyric": "" }
]
} ' > score.json
curl -s
-H " Content-Type: application/json "
-X POST
-d @score.json
" 127.0.0.1:50021/sing_frame_audio_query?speaker=6000 "
> query.json
curl -s
-H " Content-Type: application/json "
-X POST
-d @query.json
" 127.0.0.1:50021/frame_synthesis?speaker=3001 "
> audio.wav樂譜中的key是MIDI編號。
lyric是歌詞,可以是任何字符串,但是根據引擎,Hiragana和Katakana 1 Mora以外的其他字符串可能會導致錯誤。
幀速率默認為93.75Hz,可以在發動機清單中的frame_rate中獲得。
第一筆必須保持沉默。
可以在/sing_frame_audio_query中指定的speaker是具有sing或singing_teacher樣式的樣式的style_id ,可以使用/singers獲得。
可以在/frame_synthesis中指定的speaker是frame_decode的style_id ,是可以在/singers中獲得的樣式。
該論點被命名為speaker ,因此它與其他API一致。
您還可以為/sing_frame_audio_query和/frame_synthesis指定不同樣式。
出於安全目的,VoiceVox不接受來自localhost以外的Origins的請求, 127.0.0.1 , app://和No oincom。因此,您可能無法從某些第三方應用程序中收到響應。
解決此問題的方法是可以從發動機配置的UI。
您可以通過指定運行時參數--disable_mutable_api或環境變量VV_DISABLE_MUTABLE_API=1來禁用更改引擎設置,字典等更改引擎設置,字典等的API。
請求和響應的所有字符代碼均為UTF-8。
當引擎啟動時,您可以指定參數。有關更多信息,請檢查-h參數以尋求幫助。
$ python run.py -h
usage: run.py [-h] [--host HOST] [--port PORT] [--use_gpu] [--voicevox_dir VOICEVOX_DIR] [--voicelib_dir VOICELIB_DIR] [--runtime_dir RUNTIME_DIR] [--enable_mock] [--enable_cancellable_synthesis]
[--init_processes INIT_PROCESSES] [--load_all_models] [--cpu_num_threads CPU_NUM_THREADS] [--output_log_utf8] [--cors_policy_mode {CorsPolicyMode.all,CorsPolicyMode.localapps}]
[--allow_origin [ALLOW_ORIGIN ...]] [--setting_file SETTING_FILE] [--preset_file PRESET_FILE] [--disable_mutable_api]
VOICEVOX のエンジンです。
options:
-h , --help show this help message and exit
--host HOST 接続を受け付けるホストアドレスです。
--port PORT 接続を受け付けるポート番号です。
--use_gpu GPUを使って音声合成するようになります。
--voicevox_dir VOICEVOX_DIR
VOICEVOXのディレクトリパスです。
--voicelib_dir VOICELIB_DIR
VOICEVOX COREのディレクトリパスです。
--runtime_dir RUNTIME_DIR
VOICEVOX COREで使用するライブラリのディレクトリパスです。
--enable_mock VOICEVOX COREを使わずモックで音声合成を行います。
--enable_cancellable_synthesis
音声合成を途中でキャンセルできるようになります。
--init_processes INIT_PROCESSES
cancellable_synthesis機能の初期化時に生成するプロセス数です。
--load_all_models 起動時に全ての音声合成モデルを読み込みます。
--cpu_num_threads CPU_NUM_THREADS
音声合成を行うスレッド数です。指定しない場合、代わりに環境変数 VV_CPU_NUM_THREADS の値が使われます。VV_CPU_NUM_THREADS が空文字列でなく数値でもない場合はエラー終了します。
--output_log_utf8 ログ出力をUTF-8でおこないます。指定しない場合、代わりに環境変数 VV_OUTPUT_LOG_UTF8 の値が使われます。VV_OUTPUT_LOG_UTF8 の値が1の場合はUTF-8で、0または空文字、値がない場合は環境によって自動的に決定されます。
--cors_policy_mode {CorsPolicyMode.all,CorsPolicyMode.localapps}
CORSの許可モード。allまたはlocalappsが指定できます。allはすべてを許可します。localappsはオリジン間リソース共有ポリシーを、app://.とlocalhost関連に限定します。その他のオリジンはallow_originオプションで追加できます。デフォルトはlocalapps。このオプションは--
setting_fileで指定される設定ファイルよりも優先されます。
--allow_origin [ALLOW_ORIGIN ...]
許可するオリジンを指定します。スペースで区切ることで複数指定できます。このオプションは--setting_fileで指定される設定ファイルよりも優先されます。
--setting_file SETTING_FILE
設定ファイルを指定できます。
--preset_file PRESET_FILE
プリセットファイルを指定できます。指定がない場合、環境変数 VV_PRESET_FILE、ユーザーディレクトリのpresets.yamlを順に探します。
--disable_mutable_api
辞書登録や設定変更など、エンジンの静的なデータを変更するAPIを無効化します。指定しない場合、代わりに環境変数 VV_DISABLE_MUTABLE_API の値が使われます。VV_DISABLE_MUTABLE_API の値が1の場合は無効化で、0または空文字、値がない場合は無視されます。刪除引擎目錄中的任何文件,然後用新文件替換它們。
VoiceVox引擎期待您的貢獻!
有關更多信息,請參閱貢獻。
我們還在VoiceVox非官方不正當服務器上進行了開發討論和聊天。請隨時加入我們。
此外,在創建拉動請求以解決問題時,我們建議您要么告訴您已經開始工作的問題,要么先創建草稿請求,以避免在與他人的同一問題上工作。
它是使用Python 3.11.9開發的。要安裝,您將為每個操作系統的C/C ++編譯器CMAKE CMAKE。
# 実行環境のインストール
python -m pip install -r requirements.txt
# 開発環境・テスト環境・ビルド環境のインストール
python -m pip install -r requirements-dev.txt -r requirements-build.txt有關命令行參數的詳細信息,請參閱以下命令:
python run.py --help # 製品版 VOICEVOX でサーバーを起動
VOICEVOX_DIR= " C:/path/to/voicevox " # 製品版 VOICEVOX ディレクトリのパス
python run.py --voicevox_dir= $VOICEVOX_DIR # モックでサーバー起動
python run.py --enable_mock # ログをUTF8に変更
python run.py --output_log_utf8
# もしくは VV_OUTPUT_LOG_UTF8=1 python run.py 如果未指定CPU線程的數量,則使用邏輯核心計數的一半。 (對於大多數CPU而言,這是總處理能力的一半。)
如果您在IaaS或專用服務器上運行,
如果要調整引擎使用的處理能力,則可以通過指定CPU線程數來進行。
python run.py --voicevox_dir= $VOICEVOX_DIR --cpu_num_threads=4 export VV_CPU_NUM_THREADS=4
python run.py --voicevox_dir= $VOICEVOX_DIR 可以使用VoiceVox Core 0.5.4或更高版本的核心。
它不支持Mac上的Libtorch版本。
如果使用--voicevox_dir參數為產品版本或編譯引擎的產品版本指定目錄,則將使用該版本的核心版本。
python run.py --voicevox_dir= " /path/to/voicevox "在Mac上,您必須指定DYLD_LIBRARY_PATH 。
DYLD_LIBRARY_PATH= " /path/to/voicevox " python run.py --voicevox_dir= " /path/to/voicevox " 指定使用--voicelib_dir參數解壓縮VoiceVox Core Zip文件的目錄。
另外,根據核心版本,使用--runtime_dir參數指定libtorch或onnxRuntime(共享庫)目錄。
但是,如果系統搜索路徑上存在libtorch和onxruntime,則不需要--runtime_dir參數。
可以多次使用--voicelib_dir參數和--runtime_dir參數。
如果要在API端點上指定核心版本,請指定core_version參數。 (如果未指定,將使用最新的核心。)
python run.py --voicelib_dir= " /path/to/voicevox_core " --runtime_dir= " /path/to/libtorch_or_onnx "在Mac上,您必須指定DYLD_LIBRARY_PATH而不是--runtime_dir參數。
DYLD_LIBRARY_PATH= " /path/to/onnx " python run.py --voicelib_dir= " /path/to/voicevox_core " 以下目錄中的音頻庫將自動加載。
<user_data_dir>/voicevox-engine/core_libraries/<user_data_dir>/voicevox-engine-dev/core_libraries/ <user_data_dir>取決於OS。
C:Users<username>AppDataLocal/Users/<username>/Library/Application Support//home/<username>/.local/share/ < username>/.local/share/可以使用pyinstaller包裝和使用Dockerfile的容器化來在本地構建。
有關步驟的更多信息,請參閱《貢獻者指南#build》。
使用GITHUB時,您可以在叉子存儲庫上使用github操作來構建。
您可以通過workflow_dispatch打開操作並啟動build-engine-package.yml來構建。可交付成果將上傳到發布。有關構建所需的gitHub操作設置,請參見撰稿人指南#github操作。
使用pytest和靜態分析使用各種襯裡進行測試。
有關步驟的更多信息,請參見撰稿人指南#Testing和貢獻者指南# -Static Analysis。
依賴性由poetry管理。此外,對於依賴庫有一些可以部署的許可限制。
有關更多信息,請參閱《貢獻者指南#package》。
VoiceVox編輯器允許您同時啟動多個引擎。通過使用此功能,您可以在VoiceVox編輯器上運行自己的語音合成引擎或現有語音合成引擎。
通過啟動多個發動機網絡API來實現多引擎功能,該Web API符合單獨的端口並統一處理VoiceVox API。編輯器通過執行二進制啟動每個引擎,該二進製文件將其與單獨管理其配置和狀態的引擎相關聯。
這可以通過創建啟動VoiceVox API兼容的執行二進制發動機來完成。訂閱VoiceVox引擎存儲庫並修改某些功能很容易。
需要修改三件事:引擎信息,角色信息和語音綜合。
引擎信息在根部直接在清單文件( engine_manifest.json )中管理。 VoiceVox API引擎需要此格式的清單文件。請檢查清單文件中的信息,並在適當的情況下進行更改。根據語音合成技術,可能無法具有與語音vox相同的功能,例如變形函數。在這種情況下,請在適當的情況下更改Sustest文件中supported_features中的信息。
字符信息在resources/character_info目錄中的文件中管理。可以使用虛擬圖標,因此請根據適當的方式更改它們。
語音合成在voicevox_engine/tts_pipeline/tts_engine.py中完成。使用VoiceVox API的語音合成是通過創建引擎上語音合成AudioQuery查詢的初始值並將其返回給用戶來實現的,並且在用戶根據需要編輯查詢後,引擎將根據查詢合成語音。查詢是在/audio_query端點上創建的,語音綜合是在/synthesis端點上執行的,如果至少支持這兩個,則符合VoiceVox API。
建議將其分配為VVPP文件。 VVPP代表“ VoiceVox插件軟件包”,並在.vvpp已構建引擎等的目錄中包含一個ZIP文件等。
編輯器將接收到的VVPP文件匯總到本地磁盤上,然後根據engine_manifest.json在根部下定位文件。如果VoiceVox編輯器無法正確加載,請參閱編輯器錯誤日誌。
此外, xxx.vvpp可以作為帶有序列號的拆分xxx.0.vvppp文件分佈。當文件大小很大並且很難分發時,這很有用。 vvpp.txt文件中列出了安裝所需的vvpp和vvppp文件。
Voice Vox-client @voice Vox-client ... VoiceVox引擎API包裝器各種語言
它是具有LGPL V3的雙重許可,並且不需要出版源代碼的單獨許可證。如果您想獲得單獨的許可證,請詢問Heho。
X帳戶:@hiho_karuta