VoiceCraft는 오디오북, 인터넷 비디오 및 오디오북을 포함한 야생 데이터에 대한 음성 편집 및 제로샷 텍스트 음성 변환(TTS) 모두에서 최첨단 성능을 달성하는 토큰 채우기 신경 코덱 언어 모델입니다. 팟캐스트.
보이지 않는 음성을 복제하거나 편집하려면 VoiceCraft에서 몇 초만 참조하면 됩니다.
Colab에서 Gradio를 실행하는 것 외에 세 가지 방법이 있습니다.
docker 이미지 내부에 있거나 모든 종속성을 설치한 경우 inference_tts.ipynb
확인하세요.
학습/미세 조정 등의 모델 개발을 수행하려면 환경 설정 및 학습을 따르는 것이 좋습니다.
2024년 4월 22일: 330M/830M TTS 강화 모델이 여기에 있습니다. gradio_app.py
또는 inference_tts.ipynb
통해 로드하세요! @chenxwh 덕분에 복제 데모가 시작되었습니다!
2024년 4월 11일: 이제 HuggingFace Spaces에서 VoiceCraft Gradio를 사용할 수 있습니다! @zuev-stepan, @Sewlell, @pgsoar @Ph0rk0z에게 감사드립니다.
2024년 4월 5일: gigaspeech와 librilight의 1/5에서 TTS 목표를 사용하여 giga330M을 미세 조정했습니다. 무게는 여기에 있습니다. 최대 프롬프트 + 생성 길이 <= 16초인지 확인하세요(제한된 계산으로 인해 훈련 데이터에서 16초보다 긴 발화를 삭제해야 했습니다). 더욱 강력한 모델이 출시될 예정이니 계속 지켜봐 주시기 바랍니다!
2024년 3월 28일: giga330M 및 giga830M의 모델 무게가 HuggingFace에 표시됩니까? 여기!
VoiceCraft로 음성 편집이나 TTS 추론을 시도하는 가장 간단한 방법은 Google Colab을 사용하는 것입니다. 실행 지침은 Colab 자체에 있습니다.
독립형 스크립트로 사용하려면 tts_demo.py 및 speech_editing_demo.py를 확인하세요. 먼저 환경을 설정해야 합니다. 인수가 없으면 이 저장소의 다른 곳에서 예로 사용되는 표준 데모 인수를 실행합니다. 명령줄 인수를 사용하여 고유한 입력 오디오, 대상 기록 및 추론 하이퍼파라미터를 지정할 수 있습니다. 자세한 내용을 보려면 도움말 명령을 실행하세요: python3 tts_demo.py -h
VoiceCraft로 TTS 추론을 시도하려면 docker를 사용할 수도 있습니다. 이를 가능하게 해준 @ubergarm과 @jayc88에게 감사드립니다.
Linux 및 Windows에서 테스트되었으며 Docker가 설치된 모든 호스트에서 작동해야 합니다.
# 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
실행 시 버전 문제가 발생한 경우, Environment.yml을 확인하여 정확한 일치를 확인하세요.
inference_speech_editing.ipynb
및 inference_tts.ipynb
를 확인하세요.
환경 설정 후 추가 종속성을 설치합니다.
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
터미널 또는 gradio_app.ipynb
에서 gdio 서버를 실행합니다.
python gradio_app.py
기본 URL에 사용할 준비가 되었습니다.
스마트 스크립트: 생성하고 싶은 내용만 작성하세요
TTS 모드: 제로샷 TTS
편집 모드: 음성 편집
긴 TTS 모드: 긴 텍스트에 대한 간편한 TTS
VoiceCraft 모델을 훈련하려면 다음 부분을 준비해야 합니다.
1,2,3단계는 ./data/phonemize_encodec_encode_hf.py에서 처리됩니다.
예제 실행:
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
여기서 encodec_model_path를 사용할 수 있습니다. 이 모델은 Gigaspeech XL에서 훈련되었으며, 56M 매개변수, 4개의 코드북, 각 코드북에는 2048개의 코드가 있습니다. 자세한 내용은 우리 논문에 설명되어 있습니다. 추출 중에 OOM이 발생하면 배치_크기 및/또는 max_len을 줄여보세요. 추출된 코드, 음소, vocab.txt는 path/to/store_extracted_codes_and_phonemes/${dataset_size}/{encodec_16khz_4codebooks,phonemes,vocab.txt}
에 저장됩니다.
매니페스트의 경우 여기에서 train.txt 및 유효성 검사.txt를 다운로드하여 path/to/store_extracted_codes_and_phonemes/manifest/
아래에 넣어주세요. 사전 훈련된 VoiceCraft 모델을 사용하려면 여기에서 vocab.txt를 다운로드하세요(음소-토큰 일치가 동일하도록).
이제 훈련을 시작해도 좋습니다!
conda activate voicecraft
cd ./z_scripts
bash e830M.sh
사용자 정의 데이터 세트를 준비하는 절차는 동일합니다. 만약에
또한 훈련으로 1~4단계를 수행해야 하며, 더 나은 안정성을 위해 사전 훈련된 모델을 미세 조정하는 경우 최적화를 위해 AdamW를 사용하는 것이 좋습니다. 체크아웃 스크립트 ./z_scripts/e830M_ft.sh
.
데이터 세트가 기가 체크포인트에 존재하지 않는 새로운 음소(가능성이 매우 높음)를 도입하는 경우 어휘를 구성할 때 원래 음소를 데이터의 음소와 결합해야 합니다. 그리고 --text_vocab_size
및 --text_pad_token
조정하여 전자가 어휘 크기보다 크거나 같고 후자는 --text_vocab_size
와 동일한 값을 갖도록 해야 합니다(예: --text_pad_token
은 항상 마지막 토큰입니다). 또한 이제 텍스트 임베딩의 크기가 다르기 때문에 충돌이 발생하지 않도록 가중치 로딩 부분을 수정해야 합니다. text_embedding
로딩을 건너뛰거나 기존 부분만 로드하고 새 부분을 무작위로 초기화할 수 있습니다.
코드베이스는 CC BY-NC-SA 4.0(LICENSE-CODE)을 따르고 모델 가중치는 Coqui Public Model License 1.0.0(LICENSE-MODEL)을 따릅니다. 우리는 다른 라이선스에 따라 다른 저장소의 코드 중 일부를 사용합니다. ./models/codebooks_patterns.py
는 MIT 라이선스에 있습니다. ./models/modules
, ./steps/optim.py
, data/tokenizer.py
는 Apache License 버전 2.0을 따릅니다. 우리가 사용한 Phonemizer는 GNU 3.0 라이센스를 따릅니다.
VALL-E 재생산에 대해 Feiteng에게 감사를 표하고 오픈 소스 인코딩을 제공한 Audiocraft 팀에 감사드립니다.
@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},
}
정부 지도자, 정치인, 유명인을 포함하되 이에 국한되지 않는 모든 조직이나 개인은 동의 없이 다른 사람의 연설을 생성하거나 편집하기 위해 이 백서에 언급된 기술을 사용하는 것이 금지되어 있습니다. 본 항목을 준수하지 않을 경우 저작권법 위반에 해당될 수 있습니다.