? AIVISSPEECH ENGINE: ai v oice i mitation s ystem - Teks ke mesin ucapan
AIVISSPEECH ENGINE adalah mesin sintesis pidato Jepang berdasarkan mesin voicevox.
Ini dibangun ke dalam AIVISSPEECH, perangkat lunak sintesis pidato Jepang, dan dapat dengan mudah menghasilkan suara emosional.
AudioQuery yang diubahMora berubahPresetJika Anda ingin menggunakan AIVISSPEECH, silakan kunjungi situs web resmi AIVISSPEECH.
Halaman ini berisi informasi terutama untuk pengembang.
Di bawah ini adalah dokumen untuk pengguna:
Kompatibel dengan PC dengan Windows, MacOS, dan Linux.
Untuk menyalakan mesin AIVISSPEECH, PC Anda membutuhkan setidaknya 3GB memori gratis (RAM).
Tip
Aplikasi desktop, AIVISSPEECH, hanya didukung pada Windows dan MacOS.
Sementara itu, AIVISSPEECH ENGINE, server API sintesis pidato, juga tersedia untuk Ubuntu/Debian Linux.
Catatan
Kami belum secara aktif memverifikasi operasi pada MAC dengan Intel CPU.
Mac dengan Intel CPU sudah keluar dari produksi, dan menjadi lebih sulit untuk menyiapkan verifikasi dan membangun lingkungan. Kami sarankan menggunakan produk ini di Mac dengan Apple Silicon sebanyak mungkin.
Peringatan
Di Windows 10, kami hanya memeriksa pengoperasian versi 22H2.
Ada laporan tentang kasus -kasus di mana mesin AIVISSPEECH macet dan gagal memulai pada versi yang lebih lama dari Windows 10 yang tidak memiliki dukungan.
Dari perspektif keamanan, kami sangat menyarankan Anda menggunakan lingkungan Windows 10 hanya memperbarui ke versi minimum 22H2 sebelum menggunakan layanan.
AIVISSPEECH ENGINE mendukung file model sintesis ucapan dalam aivmx ( ai vis v oice m odel untuk format onn x ) ( .aivmx ).
AIVM ( Ai vis v oice m odel) / AIVMX ( ai vis v oice m odel for onn x ) adalah format file terbuka untuk model sintesis ucapan AI yang menggabungkan model pra-terlatih, hyperparameters, vektor gaya, satu metadata (nama, ikhtisar, lisensi, ikon, sampel suara, dll .
Untuk informasi lebih lanjut tentang spesifikasi AIVM dan file AIVM/AIVMX, silakan merujuk ke spesifikasi AIVM yang dikembangkan dalam proyek AIVIS.
Catatan
"AIVM" juga merupakan istilah umum untuk spesifikasi format AIVM/AIVMX dan spesifikasi metadata.
Secara khusus, file AIVM adalah file model dalam "format safetensors dengan AIVM metadata ditambahkan", dan file AIVMX adalah file model dalam "format onnx dengan AIVM metadata ditambahkan".
"AIVM Metadata" mengacu pada berbagai metadata yang terkait dengan model terlatih sebagaimana didefinisikan dalam spesifikasi AIVM.
Penting
Mesin AIVISSPEECH juga merupakan implementasi referensi dari spesifikasi AIVM, tetapi sengaja dirancang untuk hanya mendukung file AIVMX.
Ini menghilangkan ketergantungan pada pytorch, mengurangi ukuran pemasangan dan memberikan inferensi CPU cepat dengan runtime ONNX.
Tip
AIVM Generator memungkinkan Anda untuk menghasilkan file AIVM/AIVMX dari model sintesis ucapan yang ada dan mengedit metadata file AIVM/AIVMX yang ada!
File AIVMX untuk arsitektur model berikut tersedia:
Style-Bert-VITS2Style-Bert-VITS2 (JP-Extra) Catatan
Spesifikasi metadata AIVM memungkinkan Anda untuk mendefinisikan speaker multibahasa, tetapi mesin AIVISSPEECH, seperti mesin voicevox, hanya mendukung sintesis ucapan Jepang.
Oleh karena itu, bahkan jika Anda menggunakan model sintesis bicara yang mendukung bahasa Inggris atau Cina, sintesis ucapan selain Jepang tidak dapat dilakukan.
Tempatkan file AIVMX di folder berikut untuk setiap OS:
C:Users(ユーザー名)AppDataRoamingAivisSpeech-EngineModels~/Library/Application Support/AivisSpeech-Engine/Models~/.local/share/AivisSpeech-Engine/Models Jalur folder yang sebenarnya akan ditampilkan sebagai Models directory: di log segera setelah memulai mesin aivisspeech.
Tip
Saat menggunakan AIVISSPEECH, Anda dapat dengan mudah menambahkan model sintesis ucapan dari layar AIVISSPEECH!
Untuk pengguna akhir, kami menyarankan Anda menambahkan model sintesis ucapan menggunakan metode ini.
Penting
Folder penyebaran untuk versi pengembangan (jika berjalan tanpa dibangun dengan pyinstaller) bukan AivisSpeech-Engine atau di bawah AivisSpeech-Engine-Dev .
AIVISSPEECH ENGINE menawarkan opsi baris perintah yang berguna seperti:
--host 0.0.0.0 memungkinkan mesin AIVISSPEECH diakses dari perangkat lain di jaringan yang sama.--cors_policy_mode all untuk mengizinkan permintaan CORS dari semua domain.--load_all_models untuk preload semua model sintesis ucapan yang diinstal ketika mesin aivisspeech dimulai.--help untuk menampilkan daftar dan deskripsi semua opsi yang tersedia. Ada banyak opsi lain yang tersedia. Untuk detailnya, silakan merujuk ke opsi --help .
Tip
Saat dieksekusi dengan opsi --use_gpu , itu dapat memanfaatkan DirectMl pada Windows dan NVIDIA GPU (CUDA) di Linux untuk sintesis ucapan kecepatan tinggi.
Selain itu, di lingkungan Windows, inferensi DirectML dapat dilakukan pada PC dengan hanya GPU (IGPU) dengan CPU bawaan, tetapi dalam kebanyakan kasus itu jauh lebih lambat dari inferensi CPU, jadi ini tidak dianjurkan.
Untuk informasi lebih lanjut, lihat pertanyaan yang sering diajukan.
Catatan
Mesin AIVISSPEECH bekerja dengan nomor port 10101 secara default.
Jika bertentangan dengan aplikasi lain, Anda dapat mengubahnya ke nomor port apa pun menggunakan opsi --port .
Peringatan
Tidak seperti mesin voicevox, beberapa opsi tidak diimplementasikan dalam mesin aivisspeech.
Pada Windows/MacOS, Anda dapat menginstal mesin AIVISSPEECH dengan sendirinya, tetapi lebih mudah untuk menyalakan mesin AIVISSPEECH, yang dilengkapi dengan konsol AIVISSPEECH, dengan sendirinya.
Jalur ke file yang dapat dieksekusi engine aivisspeech ( run.exe / run ) yang dikirimkan dengan aivisspeech adalah sebagai berikut:
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 . Catatan
Model default (kira -kira 250MB) dan model BERT (sekitar 1.3GB) yang diperlukan untuk inferensi secara otomatis diunduh pada startup pertama, sehingga akan memakan waktu hingga beberapa menit untuk startup selesai.
Harap tunggu sebentar sampai startup selesai.
Untuk menambahkan model sintesis ucapan ke mesin aivisspeech, lihat di mana menempatkan file model.
Anda juga dapat menambahkannya dengan mengklik "Pengaturan"> "Kelola Model Sintesis Pidato" di AIVISSPEECH.
Saat berjalan di lingkungan GPU Linux + NVIDIA, versi CUDA/CUDNN yang didukung Runtime ONNX harus cocok dengan versi CUDA/CUDNN dari lingkungan host, dan kondisi operasinya ketat.
Secara khusus, runtime ONNX yang digunakan oleh mesin AIVISSPEECH membutuhkan CUDA 12.x / Cudnn 9.x atau lebih tinggi.
Docker bekerja terlepas dari lingkungan OS host, jadi kami sarankan untuk memasangnya dengan Docker.
Saat menjalankan wadah Docker, selalu pasang ~/.local/share/AivisSpeech-Engine ke /home/user/.local/share/AivisSpeech-Engine-Dev dalam wadah.
Dengan cara ini, bahkan setelah Anda berhenti atau memulai kembali wadah, Anda masih dapat mempertahankan model sintesis ucapan yang terpasang dan cache model Bert (sekitar 1.3GB).
Untuk menambahkan model sintesis ucapan ke mesin AIVISSPEECH di lingkungan Docker, tempatkan file model (.AIVMX) di bawah ~/.local/share/AivisSpeech-Engine/Models di lingkungan host.
Penting
Pastikan untuk memasangnya terhadap /home/user/.local/share/AivisSpeech-Engine-Dev .
Karena mesin aivisspeech pada gambar Docker tidak dibangun dengan pyinstaller, nama folder data diberikan akhiran -Dev dan 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 Saat Anda menjalankan satu-liner berikut di Bash, file WAV yang disintesis pidato akan menjadi output ke audio.wav .
Penting
Diasumsikan bahwa mesin aivisspeech telah dimulai sebelumnya dan bahwa Models directory: Direktori berikut berisi model sintesis pidato (.AIVMX) yang sesuai dengan ID gaya.
# 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.jsonTip
Untuk spesifikasi permintaan dan respons API terperinci, silakan merujuk ke dokumentasi API dan kompatibilitas dengan API Voicevox. Dokumentasi API selalu mencerminkan perubahan dalam versi pengembangan terbaru.
Anda dapat melihat dokumentasi API (Swagger UI) untuk mesin AIVISSPEECH yang berjalan dengan mengakses http://127.0.0.1:10101/docs dengan mesin AIVISSPEECH atau editor AIVISSPEECH yang sedang berlangsung.
Mesin AIVISSPEECH umumnya kompatibel dengan HTTP API Voicevox Engine.
Jika Anda memiliki perangkat lunak yang mendukung HTTP API Voicevox Engine, Anda harus dapat mendukung mesin AIVISSPEECH dengan hanya mengganti URL API dengan http://127.0.0.1:10101 .
Penting
Namun, jika Anda mengedit konten AudioQuery yang diperoleh dari /audio_query API pada klien API dan kemudian meneruskannya ke API /synthesis , mungkin tidak mungkin untuk mensintesis pidato dengan benar karena perbedaan dalam spesifikasi (lihat di bawah).
Karena ini, editor AIVISSPEECH dapat menggunakan mesin aivisspeech dan mesin voicevox (saat menggunakan fungsi multi-mesin), tetapi Anda tidak dapat menggunakan mesin aivisspeech dari editor voicevox.
Menggunakan mesin aivisspeech di editor voicevox secara signifikan mengurangi kualitas sintesis bicara karena keterbatasan dalam implementasi editor. Selain tidak dapat memanfaatkan parameter unik mesin AIVISSPEECH, ada kemungkinan bahwa kesalahan dapat terjadi ketika memanggil fungsi yang tidak kompatibel.
Kami sangat merekomendasikan menggunakannya dengan editor AIVISSPEECH untuk mendapatkan hasil sintesis bicara yang lebih baik.
Catatan
Meskipun harus secara umum kompatibel dalam kasus penggunaan API umum, mungkin ada API yang tidak kompatibel selain yang berikut, karena sistem sintesis bicara dengan arsitektur model yang secara fundamental berbeda secara paksa dimasukkan dalam spesifikasi API yang sama.
Jika Anda melaporkannya melalui masalah ini, kami akan memperbaiki perbaikan kompatibilitas apa pun.
Berikut ini adalah perubahan pada spesifikasi API dari mesin voicevox:
ID lokal gaya speaker dalam manifes AIVM yang terkandung dalam file AIVMX dikelola dalam nomor seri mulai dari 0 untuk setiap pembicara.
Dalam model sintesis ucapan dari arsitektur gaya-BerT-VITS2, nilai ini cocok dengan nilai data.style2id hyperparameter model. Style2id.
Di sisi lain, API Voicevox Engine tidak menentukan speaker UUID ( speaker_uuid ) dan hanya ID gaya ( style_id ) yang diteruskan ke API sintesis pidato, mungkin karena alasan historis.
Mesin Voicevox memiliki speaker dan gaya yang tetap, sehingga tim pengembangan dapat secara unik mengelola "ID Gaya."
Sementara itu, AIVISSPEECH ENGINE memungkinkan pengguna untuk secara bebas menambahkan model sintesis ucapan.
Oleh karena itu, "ID Gaya" yang kompatibel dengan API Voicevox harus unik tidak peduli apa model sintesis ucapan ditambahkan.
Ini karena jika nilainya tidak unik, gaya speaker dan ID gaya yang termasuk dalam model yang ada dapat tumpang tindih ketika model sintesis ucapan baru ditambahkan.
Oleh karena itu, mesin aivisspeech menggabungkan speaker uuid dan ID gaya pada AIVM manifes untuk menghasilkan "ID gaya" yang unik secara global yang kompatibel dengan API voicevox.
Metode pembuatan spesifik adalah sebagai berikut:
Peringatan
Karena ini, masalah yang tidak terduga dapat terjadi dengan perangkat lunak Voicevox API-Enabled yang tidak berasumsi bahwa integer yang ditandatangani 32-bit termasuk dalam "ID Gaya."
Peringatan
Ini adalah probabilitas yang sangat rendah bahwa ID gaya speaker yang berbeda dapat tumpang tindih (tabrakan) karena mereka mengorbankan keunikan global uuid speaker agar sesuai dengan kisaran integer yang ditandatangani 32-bit.
Pada titik ini, tidak ada solusi untuk ID gaya duplikat, tetapi pada kenyataannya, ini bukan masalah dalam banyak kasus.
Tip
Voicevox API yang kompatibel dengan "ID Gaya" yang dihasilkan secara otomatis oleh mesin AIVISSPEECH dapat diperoleh dari /speakers API.
API ini mengembalikan daftar informasi speaker yang diinstal pada mesin AIVISSPEECH.
AudioQuery yang diubah Tipe AudioQuery adalah kueri untuk melakukan sintesis ucapan dengan menentukan urutan teks atau fonem.
Perubahan utama dari jenis AudioQuery di mesin voicevox adalah sebagai berikut:
intonationScale berbeda.intonationScale di auvisspeech Engine:intonationScale adalah 0,0 hingga 1,0, Style-Bert-Vits2 sesuai dengan kisaran 0,0 hingga 1,0.intonationScale adalah 1,0 hingga 2.0, Style-Bert-Vits2 sesuai dengan kisaran 1,0 hingga 10,0.tempoDynamicsScale dengan sendirinya.tempoDynamicsScale di aivisspeech mesin:tempoDynamicsScale adalah 0,0 hingga 1,0, Style-Bert-Vits2 sesuai dengan kisaran 0,0 hingga 0,2.tempoDynamicsScale adalah 1,0 hingga 2.0, Style-Bert-Vits2 sesuai dengan kisaran 0,2 hingga 1,0.pitchScale berbeda.pauseLength dan pauseLengthScale tidak didukung.kana berbeda.Untuk informasi lebih lanjut tentang perubahan, lihat model.py.
Mora berubah Jenis Mora adalah struktur data yang mewakili maura teks bicara.
Tip
Mora adalah unit terkecil dari pengelompokan suara ketika benar -benar diucapkan (seperti "A", "ka", atau "o").
Jenis Mora tidak digunakan sendiri untuk respons permintaan API, dan selalu digunakan secara tidak langsung melalui AudioQuery.accent_phrases[n].moras atau AudioQuery.accent_phrases[n].pause_mora .
Perubahan utama dari tipe Mora di mesin voicevox adalah sebagai berikut:
pause_mora , tetapi dalam mesin aivisspeech diperlakukan sebagai moras normal.text adalah simbol yang sama dan vowel diatur ke "pau".consonant / vowel hanya baca.text selalu digunakan untuk membaca teks selama sintesis ucapan.consonant_length / vowel_length / pitch tidak didukung.Untuk informasi lebih lanjut tentang perubahan, lihat tts_pipeline/model.py.
Preset Jenis Preset adalah informasi yang telah ditentukan untuk menentukan nilai awal kueri sintesis pidato pada editor.
Perubahan umumnya sesuai dengan perubahan dalam spesifikasi bidang untuk intonationScale / tempoDynamicsScale / pitchScale / pauseLength / pauseLengthScale yang dijelaskan dalam jenis AudioQuery .
Untuk informasi lebih lanjut tentang perubahan, lihat preset/model.py.
Peringatan
Bernyanyi dan sintesis pidato yang dapat dibatalkan API tidak didukung.
Ini ada sebagai titik akhir untuk tujuan kompatibilitas, tetapi selalu mengembalikan 501 Not Implemented .
Untuk informasi lebih lanjut, silakan periksa aplikasi/router/karakter.py/app/router/tts_pipeline.py.
/singers/singer_info/cancellable_synthesis/sing_frame_audio_query/sing_frame_volume/frame_synthesis Peringatan
API /synthesis_morphing yang menyediakan fungsionalitas morphing tidak didukung.
Karena waktu suara berbeda untuk setiap pembicara, tidak mungkin untuk diterapkan (itu berhasil tetapi tidak tahan mendengarkan), jadi 400 Bad Request selalu dikembalikan.
Mengembalikan apakah morphing tersedia untuk setiap pembicara /morphable_targets API melarang morphing untuk semua pembicara.
Untuk informasi lebih lanjut, silakan periksa aplikasi/router/morphing.py.
/synthesis_morphing/morphable_targetsPeringatan
Itu ada sebagai parameter untuk tujuan kompatibilitas, tetapi selalu diabaikan.
Untuk informasi lebih lanjut, silakan periksa aplikasi/router/karakter.py/app/router/tts_pipeline.py.
core_versionenable_interrogative_upspeakどうですか…? Cukup tambahkan "?" Di akhir teks untuk dibaca dengan lantang, seperti ini, dan Anda dapat membacanya dengan intonasi yang dipertanyakan. Tip
Harap lihat juga FAQ/T&J editor AIVISSPEECH.
intonationScale ) akan menyebabkan percepatan pidato. Ini adalah spesifikasi arsitektur model Style-Bert-Vits2 saat ini yang didukung oleh mesin AIVISSPEECH.
Bergantung pada speaker dan gayanya, jika Anda menaikkan intonationScale terlalu banyak, suara Anda mungkin menjadi aneh atau Anda mungkin akhirnya membaca suara yang tidak wajar.
Batas atas nilai intonationScale yang memungkinkan Anda berbicara dengan benar akan bervariasi tergantung pada speaker dan gaya. Sesuaikan nilainya dengan tepat.
Di AIVISSPEECH ENGINE, kami mencoba memastikan bahwa bacaan dan aksen yang benar benar dalam sekali jalan, tetapi ada saat -saat ketika tidak dapat dihindari bahwa itu salah.
Kata-kata yang tidak terdaftar dalam kamus bawaan, seperti kata benda yang tepat dan nama orang (terutama nama berkilau), sering tidak dibaca dengan benar.
Anda dapat mengubah cara kata -kata ini dibaca dengan mendaftarkan kamus. Coba mendaftarkan kata -kata dari editor AIVISSPEECH atau API.
Selain itu, untuk kata -kata majemuk dan kata -kata bahasa Inggris, konten yang terdaftar dalam kamus mungkin tidak tercermin terlepas dari prioritas kata tersebut. Ini adalah spesifikasi saat ini.
Mesin AIVISSPEECH dirancang untuk mensintesis pidato dalam kalimat yang relatif pendek, seperti kalimat atau pengelompokan makna.
Oleh karena itu, mengirim kalimat panjang yang melebihi 1000 karakter sekaligus ke /synthesis API dapat menyebabkan masalah seperti berikut:
Saat mensintesis kalimat panjang, kami merekomendasikan untuk memisahkan kalimat pada posisi berikut dan mengirimkannya ke API sintesis pidato.
Tidak ada batasan yang sulit, tetapi diinginkan untuk memiliki hingga 500 karakter per sintesis ucapan.
Tip
Membagi kalimat dengan istirahat semantik cenderung menghasilkan suara intonasi yang lebih alami.
Ini karena ekspresi emosional dan intonasi yang sesuai dengan konten teks diterapkan pada seluruh kalimat yang dikirim ke API sintesis pidato sekaligus.
Dengan membagi kalimat dengan benar, Anda dapat mengatur ulang ekspresi emosional dan intonasi setiap kalimat, menghasilkan bacaan yang lebih alami.
Akses internet hanya diperlukan saat memulai aivisspeech untuk pertama kalinya karena data model diunduh.
Anda dapat menggunakan PC offline pada boot kedua atau yang lebih baru.
Ini dapat dilakukan pada layar konfigurasi mesin AIVISSPEECH yang sedang berjalan.
Saat Anda mengakses http://127.0.0.1:[AivisSpeech Engine のポート番号]/setting dari browser Anda saat memulai mesin AIVISSPEECH, layar konfigurasi mesin AIVISSPEECH akan terbuka.
Nomor port default untuk mesin AIVISSPEECH adalah 10101 .
--use_gpu ) dan masih menghasilkan suara lebih lambat dari mode CPU.Mode GPU dapat digunakan pada PC dengan CPU bawaan (IGPU) saja, tetapi dalam kebanyakan kasus itu jauh lebih lambat dari mode CPU, sehingga tidak dianjurkan.
Ini karena GPU dengan CPU built-in memiliki kinerja yang lebih rendah daripada GPU independen (DGPU) dan tidak pandai pemrosesan berat seperti sintesis ucapan AI.
Di sisi lain, kinerja CPU akhir -akhir ini telah ditingkatkan secara signifikan, dan CPU saja dapat menghasilkan audio dengan kecepatan tinggi.
Oleh karena itu, kami sarankan menggunakan mode CPU pada PC yang tidak memiliki DGPU.
Jika Anda menggunakan PC dengan generasi ke-12 Intel atau CPU yang lebih baru (konfigurasi hybrid P-core/e-core), kinerja pembuatan audio dapat berubah secara dramatis tergantung pada pengaturan daya windows.
Ini karena mode "keseimbangan" default memudahkan tugas pembuatan suara untuk ditugaskan untuk e-core hemat daya.
Ubah pengaturan menggunakan langkah -langkah di bawah ini untuk memanfaatkan inti P dan E sebaik -baiknya dan menghasilkan suara lebih cepat.
*"Paket listrik" di panel kontrol juga memiliki pengaturan "kinerja tinggi", tetapi pengaturannya berbeda.
Untuk CPU Generasi ke -12 Intel atau yang lebih baru, kami sarankan mengubah "mode daya" dari layar Windows 11 Pengaturan.
AIVISSPEECH bertujuan untuk menjadi perangkat lunak sintesis ucapan AI gratis yang tidak terikat oleh penggunaannya.
(Itu tergantung pada lisensi model sintesis pidato yang digunakan dalam pengiriman) paling tidak, perangkat lunak itu sendiri tidak memerlukan kredit, dan dapat digunakan secara bebas, baik untuk individu, perusahaan, tujuan komersial atau non-komersial.
... Namun, saya juga ingin lebih banyak orang tahu tentang aivisspeech.
Jika Anda suka, saya akan senang jika Anda bisa mengkredit aivisspeech di suatu tempat dalam pengiriman. (Format kredit diserahkan kepada Anda.)
Itu disimpan di folder berikut:
C:Users(ユーザー名)AppDataRoamingAivisSpeech-EngineLogs~/Library/Application Support/AivisSpeech-Engine/Logs~/.local/share/AivisSpeech-Engine/LogsJika Anda menemukan masalah, silakan laporkan menggunakan salah satu metode berikut:
Masalah GitHub (Direkomendasikan)
Jika Anda memiliki akun GitHub, silakan laporkan melalui masalah GitHub kami dan kami dapat merespons lebih awal.
Twitter (x)
Anda dapat membalas akun Proyek AIVIS resmi, DM, atau tweet dengan tagar #AIVISSPEECH.
Formulir Kontak
Anda juga dapat melaporkan melalui Formulir Kontak Proyek AIVIS.
Harap laporkan informasi berikut sebanyak mungkin, dan kami akan dapat merespons lebih cepat.
Voicevox adalah perangkat lunak besar yang masih dikembangkan secara aktif hingga saat ini.
Oleh karena itu, mesin AIVISSPEECH mengembangkan versi terbaru dari mesin voicevox di bawah kebijakan berikut:
voicevox_engine dan perbedaan dalam perubahan pernyataan impor akan sangat besar, sehingga rebranding tidak dilakukan. Prosedur ini berbeda secara signifikan dari mesin voicevox asli.
Anda harus menginstal Python 3.11 sebelumnya.
# Poetry と pre-commit をインストール
pip install poetry poetry-plugin-export pre-commit
# pre-commit を有効化
pre-commit install
# 依存関係をすべてインストール
poetry installProsedur ini berbeda secara signifikan dari mesin voicevox asli.
# 開発環境で 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 buildDari lisensi ganda mesin voicevox dasar, hanya LGPL-3.0 yang akan diwarisi secara mandiri.
Di bawah ini dan dokumen/ dokumen -dokumen berikut dibawa dari dokumen mesin voicevox asli tanpa modifikasi. Tidak dijamin bahwa isi dokumen -dokumen ini juga akan bekerja dengan mesin AIVISSPEECH.
Ini adalah mesin Voicevox.
Pada kenyataannya, ini adalah server HTTP, sehingga Anda dapat mensintesis teks dan pidato dengan mengirimkan permintaan.
(Editornya adalah voicevox, inti adalah voicevox core, dan keseluruhan struktur dapat ditemukan di sini.)
Inilah panduan yang disesuaikan dengan kebutuhan Anda.
Unduh mesin yang sesuai di sini.
Silakan merujuk ke dokumentasi API.
Dengan mesin voicevox atau editor yang berjalan, Anda juga dapat melihat dokumentasi untuk mesin yang sedang dimulai.
Untuk rencana masa depan, kolaborasi dengan mesin sintesis suara Voicevox juga berguna.
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 Saat menggunakan versi GPU, kesalahan dapat terjadi tergantung pada lingkungan. Dalam hal ini, Anda dapat memecahkan masalah dengan menambahkan --runtime=nvidia ke docker run .
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.wavAudio yang dihasilkan memiliki tingkat pengambilan sampel yang sedikit khusus 24.000Hz, sehingga beberapa pemain audio mungkin tidak dapat memainkannya.
Nilai yang ditentukan untuk speaker adalah style_id yang diperoleh pada titik akhir /speakers . Itu dinamai speaker untuk kompatibilitas.
Anda dapat menyesuaikan audio dengan mengedit parameter kueri sintesis pidato yang diperoleh dengan /audio_query .
Misalnya, cobalah untuk berbicara dengan kecepatan 1,5 kali lebih cepat.
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 Wind Notation " adalah notasi yang menentukan cara membaca hanya menggunakan Katakana dan simbol. Aquestalk Ini sebagian berbeda dari notasi asli.
Gaya Aquestalk mengikuti aturan berikut:
/ 、 . Interval diam dimasukkan hanya 、 dipisahkan oleh._ di depan Kana, Kana itu akan diam.' . Semua frasa aksen harus memiliki satu posisi aksen yang ditentukan.? Anda dapat mengucapkan pertanyaan dengan menambahkan (lebar penuh) Respons terhadap /audio_query menggambarkan pembacaan bahwa mesin menilai.
Dengan memodifikasi ini, Anda dapat mengontrol bacaan dan aksen suara.
# 読ませたい文章を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.wavAnda dapat menelusuri kamus pengguna, menambah, mengedit, dan menghapus kata -kata dari API.
Anda dapat mengambil daftar kamus pengguna dengan mengirimkan permintaan GET ke /user_dict .
curl -s -X GET " 127.0.0.1:50021/user_dict " Anda dapat menambahkan kata ke kamus pengguna Anda dengan mengirimkan permintaan pos ke /user_dict_word .
Parameter URL berikut diperlukan:
Artikel ini akan berguna untuk lokasi inti aksen.
Bagian angka dengan tipe 〇 menjadi posisi inti aksen.
https://tdmelodic.readthedocs.io/ja/latest/pages/introduction.html
Nilai pengembalian pada kesuksesan adalah string UUID yang ditetapkan untuk kata tersebut.
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 " Anda dapat memodifikasi kata -kata dalam kamus pengguna dengan mengirimkan permintaan put ke /user_dict_word/{word_uuid} .
Parameter URL berikut diperlukan:
Word_uuid dapat diperiksa saat menambahkan kata -kata, dan juga dapat diperiksa dengan merujuk kamus pengguna.
Jika berhasil, nilai pengembalian adalah 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 " Anda dapat menghapus kata -kata dalam kamus pengguna dengan mengirimkan permintaan hapus ke /user_dict_word/{word_uuid} .
Word_uuid dapat diperiksa saat menambahkan kata -kata, dan juga dapat diperiksa dengan merujuk kamus pengguna.
Jika berhasil, nilai pengembalian adalah 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 " Anda dapat mengimpor dan mengekspor kamus pengguna di bagian "Ekspor & Impor Kamus Pengguna" di halaman Pengaturan Mesin.
Anda juga dapat mengimpor dan mengekspor kamus pengguna menggunakan API.
Gunakan POST /import_user_dict untuk impor dan GET /user_dict untuk ekspor.
引数等の詳細は 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.wavspeaker_uuidは、 /speakersで確認できますidは重複してはいけません/synthesis_morphingでは、2 種類のスタイルでそれぞれ合成された音声を元に、モーフィングした音声を生成します。
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追加情報の中の portrait.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は歌詞で、任意の文字列を指定できますが、エンジンによってはひらがな・カタカナ1モーラ以外の文字列はエラーになることがあります。
フレームレートはデフォルトが 93.75Hz で、エンジンマニフェストのframe_rateで取得できます。
1つ目のノートは無音である必要があります。
/sing_frame_audio_queryで指定できるspeakerは、 /singersで取得できるスタイルの内、種類がsingかsinging_teacherなスタイルのstyle_idです。
/frame_synthesisで指定できるspeakerは、 /singersで取得できるスタイルの内、種類がframe_decodeのstyle_idです。
引数がspeakerという名前になっているのは、他の API と一貫性をもたせるためです。
/sing_frame_audio_queryと/frame_synthesisに異なるスタイルを指定することも可能です。
VOICEVOX ではセキュリティ保護のためlocalhost・127.0.0.1・app://・Origin なし以外の Origin からリクエストを受け入れないようになっています。 そのため、一部のサードパーティアプリからのレスポンスを受け取れない可能性があります。
これを回避する方法として、エンジンから設定できる 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 ENGINE は皆さんのコントリビューションをお待ちしています!
詳細は CONTRIBUTING.md をご覧ください。
また VOICEVOX 非公式 Discord サーバーにて、開発の議論や雑談を行っています。気軽にご参加ください。
なお、Issue を解決するプルリクエストを作成される際は、別の方と同じ Issue に取り組むことを避けるため、Issue 側で取り組み始めたことを伝えるか、最初に Draft プルリクエストを作成することを推奨しています。
Python 3.11.9を用いて開発されています。 インストールするには、各 OS ごとの C/C++ コンパイラ、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 もしくはコンパイル済みエンジンのディレクトリを--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 " VOICEVOX Core の zip ファイルを解凍したディレクトリを--voicelib_dir引数で指定します。
また、コアのバージョンに合わせて、libtorchやonnxruntime (共有ライブラリ) のディレクトリを--runtime_dir引数で指定します。
ただし、システムの探索パス上に libtorch、onnxruntime がある場合、 --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 では、 --runtime_dir引数の代わりにDYLD_LIBRARY_PATHの指定が必要です。
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/ pyinstallerを用いたパッケージ化と Dockerfile を用いたコンテナ化によりローカルでビルドが可能です。
手順の詳細は 貢献者ガイド#ビルド を御覧ください。
GitHub を用いる場合、fork したリポジトリで GitHub Actions によるビルドが可能です。
Actions を ON にし、workflow_dispatch でbuild-engine-package.ymlを起動すればビルドできます。 成果物は Release にアップロードされます。 ビルドに必要な GitHub Actions の設定は 貢献者ガイド#GitHub Actions を御覧ください。
pytestを用いたテストと各種リンターを用いた静的解析が可能です。
手順の詳細は 貢献者ガイド#テスト, 貢献者ガイド#静的解析 を御覧ください。
依存関係はpoetryで管理されています。また、導入可能な依存ライブラリにはライセンス上の制約があります。
詳細は 貢献者ガイド#パッケージ を御覧ください。
VOICEVOX エディターでは、複数のエンジンを同時に起動することができます。 この機能を利用することで、自作の音声合成エンジンや既存の音声合成エンジンを VOICEVOX エディター上で動かすことが可能です。
VOICEVOX API に準拠した複数のエンジンの Web API をポートを分けて起動し、統一的に扱うことでマルチエンジン機能を実現しています。 エディターがそれぞれのエンジンを実行バイナリ経由で起動し、EngineID と結びつけて設定や状態を個別管理します。
VOICEVOX API 準拠エンジンを起動する実行バイナリを作ることで対応が可能です。 VOICEVOX ENGINE リポジトリを fork し、一部の機能を改造するのが簡単です。
改造すべき点はエンジン情報・キャラクター情報・音声合成の3点です。
エンジンの情報はルート直下のマニフェストファイル( engine_manifest.json )で管理されています。 この形式のマニフェストファイルは VOICEVOX API 準拠エンジンに必須です。 マニフェストファイル内の情報を見て適宜変更してください。 音声合成手法によっては、例えばモーフィング機能など、VOICEVOX と同じ機能を持つことができない場合があります。 その場合はマニフェストファイル内のsupported_features内の情報を適宜変更してください。
キャラクター情報はresources/character_infoディレクトリ内のファイルで管理されています。 ダミーのアイコンなどが用意されているので適宜変更してください。
音声合成はvoicevox_engine/tts_pipeline/tts_engine.pyで行われています。 VOICEVOX API での音声合成は、エンジン側で音声合成用のクエリAudioQueryの初期値を作成してユーザーに返し、ユーザーが必要に応じてクエリを編集したあと、エンジンがクエリに従って音声合成することで実現しています。 クエリ作成は/audio_queryエンドポイントで、音声合成は/synthesisエンドポイントで行っており、最低この2つに対応すれば VOICEVOX API に準拠したことになります。
VVPP ファイルとして配布するのがおすすめです。 VVPP は「VOICEVOX プラグインパッケージ」の略で、中身はビルドしたエンジンなどを含んだディレクトリの Zip ファイルです。 拡張子を.vvppにすると、ダブルクリックで VOICEVOX エディターにインストールできます。
エディター側は受け取った VVPP ファイルをローカルディスク上に Zip 展開したあと、ルートの直下にあるengine_manifest.jsonに従ってファイルを探査します。 VOICEVOX エディターにうまく読み込ませられないときは、エディターのエラーログを参照してください。
また、 xxx.vvppは分割して連番を付けたxxx.0.vvpppファイルとして配布することも可能です。 これはファイル容量が大きくて配布が困難な場合に有用です。 インストールに必要なvvppおよびvvpppファイルはvvpp.txtファイルにリストアップしています。
voicevox-client @voicevox-client ・・・ VOICEVOX ENGINE の各言語向け API ラッパー
LGPL v3 と、ソースコードの公開が不要な別ライセンスのデュアルライセンスです。 別ライセンスを取得したい場合は、ヒホに求めてください。
X アカウント: @hiho_karuta