VoiceCraft adalah model bahasa codec saraf pengisi token, yang mencapai kinerja canggih pada pengeditan ucapan dan zero-shot text-to-speech (TTS) pada data liar termasuk buku audio, video internet, dan podcast.
Untuk mengkloning atau mengedit suara yang tidak terlihat, VoiceCraft hanya memerlukan referensi beberapa detik.
Ada tiga cara (selain menjalankan Gradio di Colab):
Saat Anda berada di dalam image buruh pelabuhan atau Anda telah menginstal semua dependensi, Periksa inference_tts.ipynb
.
Jika Anda ingin melakukan pengembangan model seperti pelatihan/penyempurnaan, saya sarankan mengikuti pengaturan dan pelatihan lingkungan.
22/04/2024: 330M/830M TTS Model yang Disempurnakan ada di sini, muat melalui gradio_app.py
atau inference_tts.ipynb
! Demo replika sudah habis, terima kasih banyak kepada @chenxwh!
04/11/2024: VoiceCraft Gradio kini tersedia di HuggingFace Spaces di sini! Terima kasih banyak kepada @zuev-stepan, @Sewlell, @pgsoar @Ph0rk0z.
04/05/2024: Saya menyempurnakan giga330M dengan tujuan TTS pada gigaspeech dan 1/5 librilight. Beban ada di sini. Pastikan durasi perintah + pembuatan maksimal <= 16 detik (karena komputasi kami yang terbatas, kami harus menghilangkan ucapan yang lebih lama dari 16 detik dalam data pelatihan). Model yang lebih kuat akan segera hadir, pantau terus!
28/03/2024: Bobot model untuk giga330M dan giga830M ada di HuggingFace? Di Sini!
Untuk mencoba pengeditan ucapan atau Inferensi TTS dengan VoiceCraft, cara paling sederhana adalah menggunakan Google Colab. Petunjuk untuk menjalankannya ada di Colab itu sendiri.
Untuk menggunakannya sebagai skrip mandiri, periksa tts_demo.py dan Speech_editing_demo.py. Pastikan untuk mengatur lingkungan Anda terlebih dahulu. Tanpa argumen, mereka akan menjalankan argumen demo standar yang digunakan sebagai contoh di tempat lain dalam repositori ini. Anda dapat menggunakan argumen baris perintah untuk menentukan audio input unik, transkrip target, dan hyperparameter inferensi. Jalankan perintah bantuan untuk informasi lebih lanjut: python3 tts_demo.py -h
Untuk mencoba inferensi TTS dengan VoiceCraft, Anda juga dapat menggunakan buruh pelabuhan. Terima kasih @ubergarm dan @ jayc88 karena telah mewujudkan hal ini.
Diuji di Linux dan Windows dan dapat bekerja dengan host mana pun yang memasang buruh pelabuhan.
# 1. clone the repo on in a directory on a drive with plenty of free space
git clone [email protected]:jasonppy/VoiceCraft.git
cd VoiceCraft
# 2. assumes you have docker installed with nvidia container container-toolkit (windows has this built into the driver)
# https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/1.13.5/install-guide.html
# sudo apt-get install -y nvidia-container-toolkit-base || yay -Syu nvidia-container-toolkit || echo etc...
# 3. First build the docker image
docker build --tag " voicecraft " .
# 4. Try to start an existing container otherwise create a new one passing in all GPUs
./start-jupyter.sh # linux
start-jupyter.bat # windows
# 5. now open a webpage on the host box to the URL shown at the bottom of:
docker logs jupyter
# 6. optionally look inside from another terminal
docker exec -it jupyter /bin/bash
export USER=(your_linux_username_used_above)
export HOME=/home/ $USER
sudo apt-get update
# 7. confirm video card(s) are visible inside container
nvidia-smi
# 8. Now in browser, open inference_tts.ipynb and work through one cell at a time
echo GOOD LUCK
conda create -n voicecraft python=3.9.16
conda activate voicecraft
pip install -e git+https://github.com/facebookresearch/audiocraft.git@c5157b5bf14bf83449c17ea1eeb66c19fb4bc7f0#egg=audiocraft
pip install xformers==0.0.22
pip install torchaudio==2.0.2 torch==2.0.1 # this assumes your system is compatible with CUDA 11.7, otherwise checkout https://pytorch.org/get-started/previous-versions/#v201
apt-get install ffmpeg # if you don't already have ffmpeg installed
apt-get install espeak-ng # backend for the phonemizer installed below
pip install tensorboard==2.16.2
pip install phonemizer==3.2.1
pip install datasets==2.16.0
pip install torchmetrics==0.11.1
pip install huggingface_hub==0.22.2
# install MFA for getting forced-alignment, this could take a few minutes
conda install -c conda-forge montreal-forced-aligner=2.2.17 openfst=1.8.2 kaldi=5.5.1068
# install MFA english dictionary and model
mfa model download dictionary english_us_arpa
mfa model download acoustic english_us_arpa
# pip install huggingface_hub
# conda install pocl # above gives an warning for installing pocl, not sure if really need this
# to run ipynb
conda install -n voicecraft ipykernel --no-deps --force-reinstall
Jika Anda mengalami masalah versi saat menjalankan sesuatu, periksa environment.yml untuk pencocokan tepat.
Periksa inference_speech_editing.ipynb
dan inference_tts.ipynb
Setelah pengaturan lingkungan, instal dependensi tambahan:
apt-get install -y espeak espeak-data libespeak1 libespeak-dev
apt-get install -y festival *
apt-get install -y build-essential
apt-get install -y flac libasound2-dev libsndfile1-dev vorbis-tools
apt-get install -y libxml2-dev libxslt-dev zlib1g-dev
pip install -r gradio_requirements.txt
Jalankan server gradio dari terminal atau gradio_app.ipynb
:
python gradio_app.py
Ini siap digunakan pada url default.
Transkrip cerdas: tulis hanya apa yang ingin Anda hasilkan
Mode TTS: TTS tembakan nol
Mode edit: Pengeditan ucapan
Mode TTS Panjang: TTS mudah pada teks panjang
Untuk melatih model VoiceCraft, Anda perlu menyiapkan bagian-bagian berikut:
Langkah 1,2,3 ditangani di ./data/phonemize_encodec_encode_hf.py, di mana
Contoh dijalankan:
conda activate voicecraft
export CUDA_VISIBLE_DEVICES=0
cd ./data
python phonemize_encodec_encode_hf.py
--dataset_size xs
--download_to path/to/store_huggingface_downloads
--save_dir path/to/store_extracted_codes_and_phonemes
--encodec_model_path path/to/encodec_model
--mega_batch_size 120
--batch_size 32
--max_len 30000
di mana encodec_model_path tersedia di sini. Model ini dilatih pada Gigaspeech XL, memiliki 56 juta parameter, 4 buku kode, setiap buku kode memiliki 2048 kode. Detailnya dijelaskan dalam makalah kami. Jika Anda menemukan OOM selama ekstraksi, coba kurangi batch_size dan/atau max_len. Kode, fonem, dan vocab.txt yang diekstraksi akan disimpan di path/to/store_extracted_codes_and_phonemes/${dataset_size}/{encodec_16khz_4codebooks,phonemes,vocab.txt}
.
Sedangkan untuk manifes, silakan unduh train.txt dan validation.txt dari sini, dan letakkan di bawah path/to/store_extracted_codes_and_phonemes/manifest/
. Silakan unduh juga vocab.txt dari sini jika Anda ingin menggunakan model VoiceCraft kami yang telah dilatih sebelumnya (sehingga pencocokan fonem-ke-token sama).
Sekarang, Anda siap memulai pelatihan!
conda activate voicecraft
cd ./z_scripts
bash e830M.sh
Prosedurnya sama untuk menyiapkan kumpulan data khusus Anda sendiri. Pastikan jika
Anda juga perlu melakukan langkah 1-4 sebagai Pelatihan, dan saya menyarankan untuk menggunakan AdamW untuk pengoptimalan jika Anda menyempurnakan model yang telah dilatih sebelumnya untuk stabilitas yang lebih baik. skrip pembayaran ./z_scripts/e830M_ft.sh
.
Jika kumpulan data Anda memperkenalkan fonem-fonem baru (yang sangat mungkin terjadi) yang tidak ada di pos pemeriksaan giga, pastikan Anda menggabungkan fonem asli dengan fonem dari data Anda saat menyusun kosakata. Dan Anda perlu menyesuaikan --text_vocab_size
dan --text_pad_token
sehingga yang pertama lebih besar atau sama dengan ukuran vocab Anda, dan yang terakhir memiliki nilai yang sama dengan --text_vocab_size
(yaitu --text_pad_token
selalu merupakan token terakhir). Juga karena penyematan teks sekarang memiliki ukuran yang berbeda, pastikan Anda memodifikasi bagian pemuatan bobot sehingga saya tidak mogok (Anda dapat melewati pemuatan text_embedding
atau hanya memuat bagian yang ada, dan menginisialisasi yang baru secara acak)
Basis kode berada di bawah CC BY-NC-SA 4.0 (LICENSE-CODE), dan bobot model berada di bawah Coqui Public Model License 1.0.0 (LICENSE-MODEL). Perhatikan bahwa kami menggunakan beberapa kode dari repositori lain yang berada di bawah lisensi berbeda: ./models/codebooks_patterns.py
berada di bawah lisensi MIT; ./models/modules
, ./steps/optim.py
, data/tokenizer.py
berada di bawah Lisensi Apache, Versi 2.0; phonemizer yang kami gunakan berada di bawah Lisensi GNU 3.0.
Kami berterima kasih kepada Feiteng atas reproduksi VALL-E-nya, dan kami berterima kasih kepada tim audiocraft atas encodec sumber terbuka.
@article{peng2024voicecraft,
author = {Peng, Puyuan and Huang, Po-Yao and Mohamed, Abdelrahman and Harwath, David},
title = {VoiceCraft: Zero-Shot Speech Editing and Text-to-Speech in the Wild},
journal = {arXiv},
year = {2024},
}
Organisasi atau individu mana pun dilarang menggunakan teknologi apa pun yang disebutkan dalam makalah ini untuk menghasilkan atau mengedit pidato seseorang tanpa persetujuannya, termasuk namun tidak terbatas pada pemimpin pemerintahan, tokoh politik, dan selebriti. Jika Anda tidak mematuhi item ini, Anda mungkin melanggar undang-undang hak cipta.