VoiceCraft は、トークンを充填するニューラル コーデック言語モデルであり、オーディオブック、インターネット ビデオ、ポッドキャスト。
目に見えない音声を複製または編集するには、VoiceCraft で参照するのは数秒だけです。
(Colab で Gradio を実行する以外に) 3 つの方法があります。
Docker イメージ内にいる場合、またはすべての依存関係をインストールしている場合は、 inference_tts.ipynb
をチェックアウトします。
トレーニング/ファインチューニングなどのモデル開発を行う場合は、次の環境設定とトレーニングをお勧めします。
04/22/2024: 330M/830M TTS 拡張モデルがここにあり、 gradio_app.py
またはinference_tts.ipynb
を通じてロードしてください。レプリカデモが完成しました。@chenxwh に感謝します!
2024/11/04: VoiceCraft Gradio が、HuggingFace Spaces で利用できるようになりました。 @zuev-stepan、@Sewlell、@pgsoar @Ph0rk0z に感謝します。
2024/04/05: gigaspeech と librilight の 1/5 で TTS 対物レンズを使用して giga330M を微調整しました。重みはここにあります。最大プロンプト + 生成の長さが 16 秒以下であることを確認してください (計算能力が限られているため、トレーニング データでは 16 秒を超える発話を削除する必要がありました)。さらに強力なモデルも登場予定ですので、ご期待ください!
2024/03/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
から gradio サーバーを実行します。
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 でトレーニングされており、5,600 万個のパラメータ、4 つのコードブックがあり、各コードブックには 2,048 個のコードがあります。詳細は論文で説明します。抽出中に 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/
配下に配置してください。事前トレーニング済みの 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 の下にあります。私たちが使用したフォンマイザーは 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},
}
いかなる組織または個人も、政府指導者、政治家、著名人を含むがこれらに限定されない、誰かの同意なしにこの文書で言及されているテクノロジーを使用して誰かのスピーチを生成または編集することを禁止されています。この項目をお守りいただけない場合、著作権法に違反する恐れがあります。