هذا المشروع لا يزال يعمل على التقدم. لجعل Funcodec أفضل ، يرجى إعلامي مخاوفك ولا تتردد في التعليق عليها في جزء Issues .
egs/LibriTTS/text2speech_laura/README.md لمزيد من التفاصيل. git clone https://github.com/alibaba/FunCodec.git && cd FunCodec
pip install --editable ./؟ روابط إلى Huggingface Model Hub ، بينما يشير ModelsCope.
| اسم النموذج | النموذج محور | مجموعة | معدل البت | حدود | يتخبط |
|---|---|---|---|---|---|
| Audio_codec-encodec-zh_en-general-16k-NQ32DS640-Pytorch | ؟ | عام | 250 ~ 8000 | 57.83 م | 7.73 جم |
| Audio_codec-encodec-zh_en-general-16k-NQ32DS320-Pytorch | ؟ | عام | 500 ~ 16000 | 14.85 م | 3.72 جم |
| Audio_codec-encodec-en-Libritts-16K-NQ32DS640-Pytorch | ؟ | Libritts | 250 ~ 8000 | 57.83 م | 7.73 جم |
| Audio_codec-encodec-en-Libritts-16K-NQ32DS320-Pytorch | ؟ | Libritts | 500 ~ 16000 | 14.85 م | 3.72 جم |
| Audio_codec-freqcodec_magphase-en-libritts-16k-gr8nq32ds320-pytorch | ؟ | Libritts | 500 ~ 16000 | 4.50 م | 2.18 جم |
| Audio_codec-freqcodec_magphase-en-libritts-16k-gr1nq32ds320-pytorch | ؟ | Libritts | 500 ~ 16000 | 0.52 م | 0.34 جم |
يرجى الرجوع إلى egs/LibriTTS/codec/encoding_decoding.sh لتنزيل النماذج المسبقة:
cd egs/LibriTTS/codec
model_name=audio_codec-encodec-zh_en-general-16k-nq32ds640-pytorch
bash encoding_decoding.sh --stage 0 --model_name ${model_name} --model_hub modelscope
# The pre-trained model will be downloaded to exp/audio_codec-encodec-zh_en-general-16k-nq32ds640-pytorch يرجى الرجوع إلى egs/LibriTTS/codec/encoding_decoding.sh لتنزيل النماذج المسبقة:
cd egs/LibriTTS/codec
model_name=audio_codec-encodec-zh_en-general-16k-nq32ds640-pytorch
bash encoding_decoding.sh --stage 0 --model_name ${model_name} --model_hub huggingface
# The pre-trained model will be downloaded to exp/audio_codec-encodec-zh_en-general-16k-nq32ds640-pytorch يرجى الرجوع إلى egs/LibriTTS/codec/encoding_decoding.sh لأداء الترميز وفك التشفير. استخراج الرموز باستخدام ملف إدخال input_wav.scp ، وسيتم حفظ الرموز إلى output_dir/codecs.txt بتنسيق JSONL.
cd egs/LibriTTS/codec
bash encoding_decoding.sh --stage 1 --batch_size 16 --num_workers 4 --gpu_devices " 0,1 "
--model_dir exp/ ${model_name} --bit_width 16000
--wav_scp input_wav.scp --out_dir outputs/codecs/
# input_wav.scp has the following format:
# uttid1 path/to/file1.wav
# uttid2 path/to/file2.wav
# ... رموز فك الرموز باستخدام برنامج codecs.txt ، وسيتم حفظ الشكل الموجي الذي أعيد بناؤه إلى output_dir/logdir/output.*/*.wav .
bash encoding_decoding.sh --stage 2 --batch_size 16 --num_workers 4 --gpu_devices " 0,1 "
--model_dir exp/ ${model_name} --bit_width 16000 --file_sampling_rate 16000
--wav_scp codecs.txt --out_dir outputs/recon_wavs
# codecs.scp is the output of above encoding stage, which has the following format:
# uttid1 [[[1, 2, 3, ...],[2, 3, 4, ...], ...]]
# uttid2 [[[9, 7, 5, ...],[3, 1, 2, ...], ...]] بالنسبة إلى شركة مفتوحة المصدر الشائعة الاستخدام ، يمكنك تدريب نموذج باستخدام الوصفة في دليل egs . على سبيل المثال ، لتدريب نموذج على مجموعة LibriTTS ، يمكنك استخدام egs/LibriTTS/codec/run.sh :
# entry the LibriTTS recipe directory
cd egs/LibriTTS/codec
# run data downloading, preparation and training stages with 2 GPUs (device 0 and 1)
bash run.sh --stage 0 --stop_stage 3 --gpu_devices 0,1 --gpu_num 2نوصي بتشغيل مرحلة البرنامج النصي على خشبة المسرح للحصول على نظرة عامة على funcodec.
بالنسبة إلى مجموعة بيانات غير مكتشفة أو مجموعة بيانات مخصصة ، يمكنك إعداد البيانات بنفسك. بشكل عام ، توظف Funcodec ملف wav.scp الذي يشبه Kaldi لتنظيم ملفات البيانات. wav.scp لديه التنسيق التالي:
# for waveform files
uttid1 /path/to/uttid1.wav
uttid2 /path/to/uttid2.wav
# for kaldi-ark files
uttid3 /path/to/ark1.wav:10
uttid4 /path/to/ark1.wav:200
uttid5 /path/to/ark2.wav:10 كما هو موضح في المثال أعلاه ، يدعم Funcodec مزيجًا من الطول الموجي أو ملفات Kaldi-ark في ملف wav.scp واحد لكل من التدريب والاستدلال. فيما يلي برنامج نصي تجريبي لتدريب نموذج على مجموعة البيانات المخصصة المسمى foo :
cd egs/LibriTTS/codec
# 0. make the directory for train, dev and test sets
mkdir -p dump/foo/train dump/foo/dev dump/foo/test
# 1a. if you already have the wav.scp file, just place them under the corresponding directories
mv train.scp dump/foo/train/ ; mv dev.scp dump/foo/dev/ ; mv test.scp dump/foo/test/ ;
# 1b. if you don't have the wav.scp file, you can prepare it as follows
find path/to/train_set/ -iname " *.wav " | awk -F ' / ' ' {print $(NF),$0} ' | sort > dump/foo/train/wav.scp
find path/to/dev_set/ -iname " *.wav " | awk -F ' / ' ' {print $(NF),$0} ' | sort > dump/foo/dev/wav.scp
find path/to/test_set/ -iname " *.wav " | awk -F ' / ' ' {print $(NF),$0} ' | sort > dump/foo/test/wav.scp
# 2. collate shape files
mkdir exp/foo_states/train exp/foo_states/dev
torchrun --nproc_per_node=4 --master_port=1234 scripts/gen_wav_length.py --wav_scp dump/foo/train/wav.scp --out_dir exp/foo_states/train/wav_length
cat exp/foo_states/train/wav_length/wav_length. * .txt | shuf > exp/foo_states/train/speech_shape
torchrun --nproc_per_node=4 --master_port=1234 scripts/gen_wav_length.py --wav_scp dump/foo/dev/wav.scp --out_dir exp/foo_states/dev/wav_length
cat exp/foo_states/dev/wav_length/wav_length. * .txt | shuf > exp/foo_states/dev/speech_shape
# 3. train the model with 2 GPUs (device 4 and 5) on the customized dataset (foo)
bash run.sh --gpu_devices 4,5 --gpu_num 2 --dumpdir dump/foo --state_dir foo_statesهذا المشروع مرخص بموجب ترخيص معهد ماساتشوستس للتكنولوجيا. يحتوي FUNCODEC أيضًا على مكونات مختلفة من الطرف الثالث وبعض التعليمات البرمجية المعدلة من عمليات إعادة الشراء الأخرى بموجب تراخيص مفتوحة المصدر الأخرى.
@misc { du2023funcodec ,
title = { FunCodec: A Fundamental, Reproducible and Integrable Open-source Toolkit for Neural Speech Codec } ,
author = { Zhihao Du, Shiliang Zhang, Kai Hu, Siqi Zheng } ,
year = { 2023 } ,
eprint = { 2309.07405 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.Sound }
}