From a480b8f16ca5b12c5e23cf5f2e63dcd8aaf0696e Mon Sep 17 00:00:00 2001 From: Geliebte <1297754537@qq.com> Date: Sun, 23 Aug 2026 13:07:58 +0800 Subject: [PATCH] update --- config.json | 9 +- package.json | 1 + src/voice/cosyvoice-opt-test.py | 66 + .../asset/cross_lingual_prompt.wav | Bin 0 -> 606404 bytes src/voice/cosyvoice-src/asset/dingding.png | Bin 0 -> 122824 bytes .../cosyvoice-src/asset/zero_shot_prompt.wav | Bin 0 -> 334138 bytes src/voice/cosyvoice-src/cosyvoice/__init__.py | 0 .../cosyvoice/bin/average_model.py | 93 + .../cosyvoice-src/cosyvoice/bin/export_jit.py | 99 + .../cosyvoice/bin/export_onnx.py | 114 + .../cosyvoice-src/cosyvoice/bin/train.py | 195 + .../cosyvoice-src/cosyvoice/cli/__init__.py | 0 .../cosyvoice-src/cosyvoice/cli/cosyvoice.py | 238 + .../cosyvoice-src/cosyvoice/cli/frontend.py | 224 + .../cosyvoice-src/cosyvoice/cli/model.py | 450 + .../cosyvoice/dataset/__init__.py | 0 .../cosyvoice/dataset/dataset.py | 155 + .../cosyvoice/dataset/processor.py | 431 + .../cosyvoice-src/cosyvoice/flow/DiT/dit.py | 176 + .../cosyvoice/flow/DiT/modules.py | 616 + .../cosyvoice-src/cosyvoice/flow/decoder.py | 494 + .../cosyvoice-src/cosyvoice/flow/flow.py | 443 + .../cosyvoice/flow/flow_matching.py | 227 + .../cosyvoice/flow/length_regulator.py | 70 + .../cosyvoice/hifigan/discriminator.py | 230 + .../cosyvoice/hifigan/f0_predictor.py | 103 + .../cosyvoice/hifigan/generator.py | 746 + .../cosyvoice/hifigan/hifigan.py | 67 + src/voice/cosyvoice-src/cosyvoice/llm/llm.py | 706 + .../multilingual_zh_ja_yue_char_del.tiktoken | 58836 ++++++++++++++++ .../cosyvoice/tokenizer/tokenizer.py | 327 + .../cosyvoice/transformer/__init__.py | 0 .../cosyvoice/transformer/activation.py | 84 + .../cosyvoice/transformer/attention.py | 330 + .../cosyvoice/transformer/convolution.py | 258 + .../cosyvoice/transformer/decoder.py | 396 + .../cosyvoice/transformer/decoder_layer.py | 132 + .../cosyvoice/transformer/embedding.py | 302 + .../cosyvoice/transformer/encoder.py | 474 + .../cosyvoice/transformer/encoder_layer.py | 236 + .../transformer/label_smoothing_loss.py | 96 + .../transformer/positionwise_feed_forward.py | 115 + .../cosyvoice/transformer/subsampling.py | 383 + .../cosyvoice/transformer/upsample_encoder.py | 321 + .../cosyvoice-src/cosyvoice/utils/__init__.py | 0 .../cosyvoice/utils/class_utils.py | 85 + .../cosyvoice-src/cosyvoice/utils/common.py | 214 + .../cosyvoice-src/cosyvoice/utils/executor.py | 176 + .../cosyvoice/utils/file_utils.py | 125 + .../cosyvoice/utils/frontend_utils.py | 136 + .../cosyvoice-src/cosyvoice/utils/losses.py | 57 + .../cosyvoice-src/cosyvoice/utils/mask.py | 265 + .../cosyvoice-src/cosyvoice/utils/onnx.py | 54 + .../cosyvoice/utils/scheduler.py | 738 + .../cosyvoice/utils/train_utils.py | 367 + .../cosyvoice/vllm/cosyvoice2.py | 116 + .../third_party/Matcha-TTS/.env.example | 6 + .../.github/PULL_REQUEST_TEMPLATE.md | 22 + .../Matcha-TTS/.github/codecov.yml | 15 + .../Matcha-TTS/.github/dependabot.yml | 17 + .../Matcha-TTS/.github/release-drafter.yml | 44 + .../third_party/Matcha-TTS/.gitignore | 164 + .../Matcha-TTS/.pre-commit-config.yaml | 59 + .../third_party/Matcha-TTS/.project-root | 2 + .../third_party/Matcha-TTS/.pylintrc | 525 + .../third_party/Matcha-TTS/LICENSE | 21 + .../third_party/Matcha-TTS/MANIFEST.in | 14 + .../third_party/Matcha-TTS/Makefile | 42 + .../third_party/Matcha-TTS/README.md | 315 + .../Matcha-TTS/configs/__init__.py | 1 + .../Matcha-TTS/configs/callbacks/default.yaml | 5 + .../configs/callbacks/model_checkpoint.yaml | 17 + .../configs/callbacks/model_summary.yaml | 5 + .../Matcha-TTS/configs/callbacks/none.yaml | 0 .../configs/callbacks/rich_progress_bar.yaml | 4 + .../Matcha-TTS/configs/debug/default.yaml | 35 + .../Matcha-TTS/configs/debug/fdr.yaml | 9 + .../Matcha-TTS/configs/debug/limit.yaml | 12 + .../Matcha-TTS/configs/debug/overfit.yaml | 13 + .../Matcha-TTS/configs/debug/profiler.yaml | 15 + .../third_party/Matcha-TTS/configs/eval.yaml | 18 + .../hifi_dataset_piper_phonemizer.yaml | 14 + .../configs/experiment/ljspeech.yaml | 14 + .../experiment/ljspeech_from_durations.yaml | 19 + .../experiment/ljspeech_min_memory.yaml | 18 + .../configs/experiment/multispeaker.yaml | 14 + .../Matcha-TTS/configs/extras/default.yaml | 8 + .../configs/hparams_search/mnist_optuna.yaml | 52 + .../Matcha-TTS/configs/hydra/default.yaml | 19 + .../Matcha-TTS/configs/local/.gitkeep | 0 .../Matcha-TTS/configs/logger/aim.yaml | 28 + .../Matcha-TTS/configs/logger/comet.yaml | 12 + .../Matcha-TTS/configs/logger/csv.yaml | 7 + .../configs/logger/many_loggers.yaml | 9 + .../Matcha-TTS/configs/logger/mlflow.yaml | 12 + .../Matcha-TTS/configs/logger/neptune.yaml | 9 + .../configs/logger/tensorboard.yaml | 10 + .../Matcha-TTS/configs/logger/wandb.yaml | 16 + .../Matcha-TTS/configs/model/cfm/default.yaml | 3 + .../configs/model/decoder/default.yaml | 7 + .../configs/model/encoder/default.yaml | 18 + .../Matcha-TTS/configs/model/matcha.yaml | 16 + .../configs/model/optimizer/adam.yaml | 4 + .../Matcha-TTS/configs/paths/default.yaml | 18 + .../third_party/Matcha-TTS/configs/train.yaml | 51 + .../Matcha-TTS/configs/trainer/cpu.yaml | 5 + .../Matcha-TTS/configs/trainer/ddp.yaml | 9 + .../Matcha-TTS/configs/trainer/ddp_sim.yaml | 7 + .../Matcha-TTS/configs/trainer/default.yaml | 20 + .../Matcha-TTS/configs/trainer/gpu.yaml | 5 + .../Matcha-TTS/configs/trainer/mps.yaml | 5 + .../third_party/Matcha-TTS/matcha/VERSION | 1 + .../third_party/Matcha-TTS/matcha/__init__.py | 0 .../third_party/Matcha-TTS/matcha/app.py | 357 + .../third_party/Matcha-TTS/matcha/cli.py | 419 + .../Matcha-TTS/matcha/hifigan/LICENSE | 21 + .../Matcha-TTS/matcha/hifigan/README.md | 101 + .../Matcha-TTS/matcha/hifigan/__init__.py | 0 .../Matcha-TTS/matcha/hifigan/config.py | 28 + .../Matcha-TTS/matcha/hifigan/denoiser.py | 68 + .../Matcha-TTS/matcha/hifigan/env.py | 17 + .../Matcha-TTS/matcha/hifigan/meldataset.py | 217 + .../Matcha-TTS/matcha/hifigan/models.py | 368 + .../Matcha-TTS/matcha/hifigan/xutils.py | 60 + .../Matcha-TTS/matcha/models/__init__.py | 0 .../matcha/models/baselightningmodule.py | 210 + .../matcha/models/components/__init__.py | 0 .../matcha/models/components/decoder.py | 443 + .../matcha/models/components/flow_matching.py | 132 + .../matcha/models/components/text_encoder.py | 410 + .../matcha/models/components/transformer.py | 316 + .../Matcha-TTS/matcha/models/matcha_tts.py | 245 + .../Matcha-TTS/matcha/onnx/__init__.py | 0 .../Matcha-TTS/matcha/onnx/export.py | 181 + .../Matcha-TTS/matcha/onnx/infer.py | 168 + .../Matcha-TTS/matcha/text/__init__.py | 57 + .../Matcha-TTS/matcha/text/cleaners.py | 144 + .../Matcha-TTS/matcha/text/numbers.py | 71 + .../Matcha-TTS/matcha/text/symbols.py | 17 + .../third_party/Matcha-TTS/matcha/train.py | 122 + .../Matcha-TTS/matcha/utils/__init__.py | 5 + .../Matcha-TTS/matcha/utils/audio.py | 82 + .../matcha/utils/generate_data_statistics.py | 110 + .../utils/get_durations_from_trained_model.py | 195 + .../Matcha-TTS/matcha/utils/instantiators.py | 56 + .../Matcha-TTS/matcha/utils/logging_utils.py | 53 + .../Matcha-TTS/matcha/utils/model.py | 90 + .../matcha/utils/monotonic_align/__init__.py | 22 + .../matcha/utils/monotonic_align/core.pyx | 47 + .../matcha/utils/monotonic_align/setup.py | 7 + .../Matcha-TTS/matcha/utils/pylogger.py | 21 + .../Matcha-TTS/matcha/utils/rich_utils.py | 101 + .../Matcha-TTS/matcha/utils/utils.py | 259 + .../third_party/Matcha-TTS/notebooks/.gitkeep | 0 .../third_party/Matcha-TTS/pyproject.toml | 51 + .../third_party/Matcha-TTS/requirements.txt | 44 + .../Matcha-TTS/scripts/schedule.sh | 7 + .../third_party/Matcha-TTS/setup.py | 53 + .../third_party/Matcha-TTS/synthesis.ipynb | 419 + src/voice/cosyvoice-test.py | 58 + src/voice/test-cosyvoice-provider.mjs | 19 + src/voice/tts-providers.js | 109 +- src/voice/tts_cosyvoice.py | 78 + src/voice/voxcpm-clone-test.py | 56 + src/voice/voxcpm-test.py | 63 + 待办.txt | 59 + 166 files changed, 78617 insertions(+), 5 deletions(-) create mode 100644 src/voice/cosyvoice-opt-test.py create mode 100644 src/voice/cosyvoice-src/asset/cross_lingual_prompt.wav create mode 100644 src/voice/cosyvoice-src/asset/dingding.png create mode 100644 src/voice/cosyvoice-src/asset/zero_shot_prompt.wav create mode 100644 src/voice/cosyvoice-src/cosyvoice/__init__.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/bin/average_model.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/bin/export_jit.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/bin/export_onnx.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/bin/train.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/cli/__init__.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/cli/cosyvoice.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/cli/frontend.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/cli/model.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/dataset/__init__.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/dataset/dataset.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/dataset/processor.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/flow/DiT/dit.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/flow/DiT/modules.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/flow/decoder.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/flow/flow.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/flow/flow_matching.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/flow/length_regulator.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/hifigan/discriminator.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/hifigan/f0_predictor.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/hifigan/generator.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/hifigan/hifigan.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/llm/llm.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/tokenizer/assets/multilingual_zh_ja_yue_char_del.tiktoken create mode 100644 src/voice/cosyvoice-src/cosyvoice/tokenizer/tokenizer.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/transformer/__init__.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/transformer/activation.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/transformer/attention.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/transformer/convolution.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/transformer/decoder.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/transformer/decoder_layer.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/transformer/embedding.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/transformer/encoder.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/transformer/encoder_layer.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/transformer/label_smoothing_loss.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/transformer/positionwise_feed_forward.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/transformer/subsampling.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/transformer/upsample_encoder.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/utils/__init__.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/utils/class_utils.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/utils/common.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/utils/executor.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/utils/file_utils.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/utils/frontend_utils.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/utils/losses.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/utils/mask.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/utils/onnx.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/utils/scheduler.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/utils/train_utils.py create mode 100644 src/voice/cosyvoice-src/cosyvoice/vllm/cosyvoice2.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/.env.example create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/.github/PULL_REQUEST_TEMPLATE.md create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/.github/codecov.yml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/.github/dependabot.yml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/.github/release-drafter.yml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/.gitignore create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/.pre-commit-config.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/.project-root create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/.pylintrc create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/LICENSE create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/MANIFEST.in create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/Makefile create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/README.md create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/__init__.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/callbacks/default.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/callbacks/model_checkpoint.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/callbacks/model_summary.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/callbacks/none.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/callbacks/rich_progress_bar.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/debug/default.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/debug/fdr.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/debug/limit.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/debug/overfit.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/debug/profiler.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/eval.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/experiment/hifi_dataset_piper_phonemizer.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/experiment/ljspeech.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/experiment/ljspeech_from_durations.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/experiment/ljspeech_min_memory.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/experiment/multispeaker.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/extras/default.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/hparams_search/mnist_optuna.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/hydra/default.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/local/.gitkeep create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/logger/aim.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/logger/comet.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/logger/csv.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/logger/many_loggers.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/logger/mlflow.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/logger/neptune.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/logger/tensorboard.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/logger/wandb.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/model/cfm/default.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/model/decoder/default.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/model/encoder/default.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/model/matcha.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/model/optimizer/adam.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/paths/default.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/train.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/trainer/cpu.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/trainer/ddp.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/trainer/ddp_sim.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/trainer/default.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/trainer/gpu.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/configs/trainer/mps.yaml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/VERSION create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/__init__.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/app.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/cli.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/hifigan/LICENSE create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/hifigan/README.md create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/hifigan/__init__.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/hifigan/config.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/hifigan/denoiser.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/hifigan/env.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/hifigan/meldataset.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/hifigan/models.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/hifigan/xutils.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/models/__init__.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/models/baselightningmodule.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/models/components/__init__.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/models/components/decoder.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/models/components/flow_matching.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/models/components/text_encoder.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/models/components/transformer.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/models/matcha_tts.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/onnx/__init__.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/onnx/export.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/onnx/infer.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/text/__init__.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/text/cleaners.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/text/numbers.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/text/symbols.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/train.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/utils/__init__.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/utils/audio.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/utils/generate_data_statistics.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/utils/get_durations_from_trained_model.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/utils/instantiators.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/utils/logging_utils.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/utils/model.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/utils/monotonic_align/__init__.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/utils/monotonic_align/core.pyx create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/utils/monotonic_align/setup.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/utils/pylogger.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/utils/rich_utils.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/matcha/utils/utils.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/notebooks/.gitkeep create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/pyproject.toml create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/requirements.txt create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/scripts/schedule.sh create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/setup.py create mode 100644 src/voice/cosyvoice-src/third_party/Matcha-TTS/synthesis.ipynb create mode 100644 src/voice/cosyvoice-test.py create mode 100644 src/voice/test-cosyvoice-provider.mjs create mode 100644 src/voice/tts_cosyvoice.py create mode 100644 src/voice/voxcpm-clone-test.py create mode 100644 src/voice/voxcpm-test.py create mode 100644 待办.txt diff --git a/config.json b/config.json index 9ca39cd..c370627 100644 --- a/config.json +++ b/config.json @@ -2,13 +2,14 @@ "clawbot": {}, "voice": { "whisperModel": "small", - "voiceProvider": "volcengine", + "voiceProvider": "local", "volcAsrApiKey": "0f9a6c2b-8d91-4f2b-92b0-531c357b24da", - "volcAsrResourceId": "volc.bigasr.sauc.duration" + "volcAsrResourceId": "volc.bigasr.sauc.duration", + "voiceEngine": "sensevoice" }, "tts": { - "ttsProvider": "doubao", - "ttsVoiceId": "zh_female_xiaohe_uranus_bigtts", + "ttsProvider": "cosyvoice", + "ttsVoiceId": "model", "doubaoKey": "0f9a6c2b-8d91-4f2b-92b0-531c357b24da" }, "embedding": {}, diff --git a/package.json b/package.json index bfbe366..73bb330 100644 --- a/package.json +++ b/package.json @@ -72,6 +72,7 @@ "!scripts/smoke-*.mjs", "!src/**/__pycache__/**", "!src/**/*.pyc", + "!src/voice/models/CosyVoice2-0.5B/**", "!**/node_modules/*/{CHANGELOG.md,README.md,readme.md,*.d.ts}", "!**/node_modules/.cache", "!**/.vscode", diff --git a/src/voice/cosyvoice-opt-test.py b/src/voice/cosyvoice-opt-test.py new file mode 100644 index 0000000..3666348 --- /dev/null +++ b/src/voice/cosyvoice-opt-test.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python3 +"""CosyVoice2 性能对比:非流式 / 流式 / 流式+jit + +用法: py -3 src/voice/cosyvoice-opt-test.py [--jit] [--stream] +""" +import os +import sys +import time +import subprocess + +BASE = os.path.dirname(os.path.abspath(__file__)) +MODEL_DIR = os.path.join(BASE, "models", "CosyVoice2-0.5B") +REF_WAV = os.path.join(BASE, "models", "melo-tts", "ref_female.wav") +REF_TEXT = "你好,我是小雅,今天想和你聊聊天。" + +DO_JIT = "--jit" in sys.argv +DO_STREAM = "--stream" in sys.argv + +sys.path.insert(0, os.path.join(BASE, "cosyvoice-src")) +sys.path.insert(0, os.path.join(BASE, "cosyvoice-src", "third_party", "Matcha-TTS")) + +def gpu_mem(): + try: + out = subprocess.run( + ["nvidia-smi", "--query-gpu=memory.used,memory.total", "--format=csv,noheader,nounits"], + capture_output=True, text=True, timeout=5, + ).stdout.strip() + return out + except Exception: + return "N/A" + +def main(): + tag = "stream" if DO_STREAM else "batch" + if DO_JIT: + tag += "+jit" + print(f"[opt] 配置: {tag} | GPU: {gpu_mem()} MiB", flush=True) + t0 = time.time() + + from cosyvoice.cli.cosyvoice import AutoModel + cosyvoice = AutoModel(model_dir=MODEL_DIR, fp16=True, load_jit=DO_JIT) + print(f"[opt] 模型加载: {time.time()-t0:.1f}s | GPU: {gpu_mem()} MiB", flush=True) + + text = "你好,我是小雅,很高兴认识你。今天我们聊聊白龙马的奇妙旅程吧。" + + import torch + t1 = time.time() + first_chunk_t = None + chunks = [] + gen = cosyvoice.inference_zero_shot(text, REF_TEXT, REF_WAV, stream=DO_STREAM) + for i, j in enumerate(gen): + if i == 0: + first_chunk_t = time.time() - t1 + print(f"[opt] 首包: {first_chunk_t:.1f}s | GPU: {gpu_mem()} MiB", flush=True) + chunks.append(j['tts_speech']) + elapsed = time.time() - t1 + wav = torch.cat(chunks, dim=1) + duration = wav.shape[1] / cosyvoice.sample_rate + print(f"[opt] 合成: {elapsed:.1f}s | 音频 {duration:.1f}s | RTF {elapsed/duration:.2f}" + f" | 首包 {first_chunk_t:.1f}s | GPU: {gpu_mem()} MiB", flush=True) + + import soundfile as sf + sf.write(f"cosyvoice_{tag}.wav", wav.squeeze(0).cpu().numpy(), cosyvoice.sample_rate) + print(f"[opt] 已保存: cosyvoice_{tag}.wav", flush=True) + +if __name__ == "__main__": + main() diff --git a/src/voice/cosyvoice-src/asset/cross_lingual_prompt.wav b/src/voice/cosyvoice-src/asset/cross_lingual_prompt.wav new file mode 100644 index 0000000000000000000000000000000000000000..35d6d4eed08b24ca379fea873c4925bdb0b58d1e GIT binary patch literal 606404 zcmeFaWt1GZwkRxBRWnZydrUFKF~!V|nVBguGsf(gA?Cy!Gc(&UGcz-@$1~%h=ISEp z+vPs}jeYJp@11-9-1XLS)#@shw6!H|skWpI)y?bGu6?4a0kx^tx>nBt!*baXLKx2P zS|e0*CqfLeqwZaXby*59luA^j0$dfitEck+ha`xVs0^nH5ri{z4c&Qo3Y|Qp@L!yv zCqMPmz~>(iclA^;sCN}Md{<#qOd;&*UBxLvxdFI`F!-pCdf`+tdLiBq&px=S<*F&} zf266
jp2XShDWjjrm)csjhM`)9o`uhJA(T=C
zG^0Qh0;hVF;Yp>L0%0{ZbYOr|Aqd3F|DdBv<4`U&zw$XBfix9HO$)=Ry&ypOA!?|!
zQ0t>UsdZAXDz#K9s#mqup;K*f7A;juhG0T;48f@MQfZ^+@_qiPl=Xb3qYEhG`Ai`f
zP$`3^! 90*-xG?o98YGng=Wxhh;2_61Xi9nQVejM5b_
z1dWx
Oxb9qAI1sx*MnSxVk7RhPDlULh@*0emGgP~AV-hkaYU6TOnB
zgr|c0xT~96>z(93#^)412pz;CQdN1H(u`ii7r8b%YxA
d
z+j2G*bawc>@8lXpadxF{oQVo440A@*iTWB
HVCyaNBpc+~hcs9b6^{hW?uw9GpsPIjjEVaC1`Zko@5vFbOuqO??a?W^Lw
z?(X96E
zH!-hau8>nI_gwC>yj}S(3KEJwBPp$(d%5?l|B`q{exV|eiL}r@rY90TI%|9A+UW_y
zSi^Wjb%R&`x4s@&=v3W6ump3tnd}5mJeQ~kAQ7ee_Ib0DS{4
zh+;$@ICt`*PdAXv$sQD%+a;vAuXt9vA3HA~Uz=Crkaj$5t0rxf?t?7;Oc=@iO8-fW
zH)g8S<>m2S@n@j;oRV8%-?@EGd8sPUaf5$e)r+|^~Czf+HnA5Rzd9%4)YecQ)iyJ%DCRShN7IBR#
zNsMG38vkfF