VoiceCraft เป็นโทเค็นที่เติมโมเดลภาษาโคเดกระบบประสาท ซึ่งให้ประสิทธิภาพที่ล้ำสมัยทั้ง การแก้ไขคำพูด และ การแปลงข้อความเป็นคำพูด (TTS) แบบ Zero-shot บนข้อมูลทั่วไป รวมถึงหนังสือเสียง วิดีโอทางอินเทอร์เน็ต และ พอดแคสต์
หากต้องการโคลนหรือแก้ไขเสียงที่มองไม่เห็น VoiceCraft ต้องการเวลาอ้างอิงเพียงไม่กี่วินาที
มีสามวิธี (นอกเหนือจากการเรียกใช้ Gradio ใน Colab):
เมื่อคุณอยู่ในอิมเมจนักเทียบท่าหรือคุณได้ติดตั้งการอ้างอิงทั้งหมดแล้ว Checkout inference_tts.ipynb
หากคุณต้องการพัฒนาโมเดล เช่น การฝึกอบรม/การปรับแต่ง ฉันขอแนะนำให้ปฏิบัติตามการตั้งค่าและการฝึกอบรมสภาพแวดล้อม
22/04/2024: โมเดลที่ได้รับการปรับปรุง TTS 330M/830M อยู่ที่นี่แล้ว โหลดผ่าน gradio_app.py
หรือ inference_tts.ipynb
! การสาธิตการจำลองเสร็จสิ้นแล้ว ขอขอบคุณ @chenxwh เป็นอย่างยิ่ง!
11/04/2024: VoiceCraft Gradio พร้อมใช้งานแล้วบน HuggingFace Spaces ที่นี่! ขอขอบคุณ @zuev-stepan, @Sewlell, @pgsoar @Ph0rk0z เป็นอย่างยิ่ง
04/05/2024: ฉันปรับแต่ง giga330M โดยมีวัตถุประสงค์ TTS บน gigapeech และ 1/5 ของ librilight ตุ้มน้ำหนักอยู่ที่นี่ ตรวจสอบให้แน่ใจว่าพร้อมท์สูงสุด + ความยาวการสร้าง <= 16 วินาที (เนื่องจากการคำนวณที่จำกัดของเรา เราจึงต้องปล่อยคำพูดที่นานกว่า 16 วินาทีในข้อมูลการฝึก) รุ่นที่แข็งแกร่งยิ่งขึ้นกำลังจะมา โปรดคอยติดตาม!
28/03/2024: น้ำหนักของรุ่น giga330M และ giga830M ขึ้นอยู่กับ HuggingFace แล้วหรือยัง? ที่นี่!
หากต้องการลองใช้การแก้ไขคำพูดหรือการอนุมาน TTS ด้วย VoiceCraft วิธีที่ง่ายที่สุดคือการใช้ Google Colab วิธีการเรียกใช้มีอยู่ใน Colab เอง
หากต้องการใช้เป็นสคริปต์แบบสแตนด์อโลน โปรดดู tts_demo.py และ Speech_editing_demo.py อย่าลืมตั้งค่าสภาพแวดล้อมของคุณก่อน หากไม่มีอาร์กิวเมนต์ พวกเขาจะเรียกใช้อาร์กิวเมนต์สาธิตมาตรฐานที่ใช้เป็นตัวอย่างในที่อื่นในพื้นที่เก็บข้อมูลนี้ คุณสามารถใช้อาร์กิวเมนต์บรรทัดคำสั่งเพื่อระบุเสียงอินพุตที่ไม่ซ้ำกัน การถอดเสียงเป้าหมาย และไฮเปอร์พารามิเตอร์ของการอนุมาน รันคำสั่ง help เพื่อดูข้อมูลเพิ่มเติม: python3 tts_demo.py -h
หากต้องการลองใช้การอนุมาน TTS ด้วย VoiceCraft คุณสามารถใช้นักเทียบท่าได้ ขอบคุณ @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
หากคุณพบปัญหาเกี่ยวกับเวอร์ชันเมื่อใช้งาน ให้ชำระเงินที่สภาพแวดล้อม .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 จากเทอร์มินัลหรือ gradio_app.ipynb
:
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, Codebook 4 เล่ม แต่ละ Codebook มี 2048 รหัส รายละเอียดมีการอธิบายไว้ในเอกสารของเรา หากคุณพบ OOM ในระหว่างการแตกไฟล์ ให้ลองลด batch_size และ/หรือ max_len รหัสที่แยกออกมา หน่วยเสียง และ vocab.txt จะถูกเก็บไว้ที่ path/to/store_extracted_codes_and_phonemes/${dataset_size}/{encodec_16khz_4codebooks,phonemes,vocab.txt}
สำหรับรายการ โปรดดาวน์โหลด train.txt และ validation.txt จากที่นี่ และวางไว้ใต้ path/to/store_extracted_codes_and_phonemes/manifest/
โปรดดาวน์โหลด vocab.txt จากที่นี่ หากคุณต้องการใช้โมเดล VoiceCraft ที่ได้รับการฝึกล่วงหน้าของเรา (เพื่อให้การจับคู่หน่วยเสียงกับโทเค็นเหมือนกัน)
ตอนนี้คุณพร้อมที่จะเริ่มการฝึกอบรมแล้ว!
conda activate voicecraft
cd ./z_scripts
bash e830M.sh
เป็นขั้นตอนเดียวกันในการเตรียมชุดข้อมูลที่คุณกำหนดเอง รับรองว่าถ้า.
คุณต้องทำขั้นตอนที่ 1-4 เป็นการฝึกฝน และฉันขอแนะนำให้ใช้ AdamW เพื่อเพิ่มประสิทธิภาพ หากคุณปรับแต่งโมเดลที่ได้รับการฝึกล่วงหน้าเพื่อความเสถียรที่ดีขึ้น สคริปต์ชำระเงิน . ./z_scripts/e830M_ft.sh
หากชุดข้อมูลของคุณแนะนำหน่วยเสียงใหม่ (ซึ่งเป็นไปได้มาก) ที่ไม่มีอยู่ในจุดตรวจ Giga ตรวจสอบให้แน่ใจว่าคุณรวมหน่วยเสียงดั้งเดิมกับหน่วยเสียงจากข้อมูลของคุณเมื่อสร้างคำศัพท์ และคุณต้องปรับ --text_vocab_size
และ --text_pad_token
เพื่อให้อันแรกใหญ่กว่าหรือเท่ากับขนาดคำศัพท์ของคุณ และอันหลังมีค่าเท่ากับ --text_vocab_size
(เช่น --text_pad_token
จะเป็นโทเค็นสุดท้ายเสมอ) นอกจากนี้ เนื่องจากขณะนี้การฝังข้อความมีขนาดแตกต่างกัน ตรวจสอบให้แน่ใจว่าคุณได้แก้ไขส่วนที่โหลดน้ำหนักเพื่อที่ฉันจะได้ไม่ผิดพลาด (คุณสามารถข้ามการโหลด text_embedding
หรือโหลดเฉพาะส่วนที่มีอยู่ และเริ่มต้นใหม่แบบสุ่ม)
Codebase อยู่ภายใต้ 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
เราขอขอบคุณ Feiteng สำหรับการทำซ้ำ VALL-E ของเขา และเราขอขอบคุณทีมงาน 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},
}
ห้ามองค์กรหรือบุคคลใดๆ ใช้เทคโนโลยีใดๆ ที่กล่าวถึงในบทความนี้เพื่อสร้างหรือแก้ไขสุนทรพจน์ของบุคคลอื่นโดยไม่ได้รับความยินยอมจากเขา/เธอ ซึ่งรวมถึงแต่ไม่จำกัดเพียงผู้นำรัฐบาล บุคคลสำคัญทางการเมือง และคนดัง หากคุณไม่ปฏิบัติตามรายการนี้ คุณอาจละเมิดกฎหมายลิขสิทธิ์