PaddleSpeech 中英混合语音合成实战:基于 FastSpeech2 的多数据集训练、合成与部署指南(示例 zh_en_tts/tts3)
发布时间:2026/9/25 13:34:24来源:尧图网络
人工智能语音音频【免费下载链接】PaddleSpeechEasy-to-use Speech Toolkit including Self-Supervised Learning model, SOTA/Streaming ASR with punctuation, Streaming TTS with text frontend, Speaker Verification System, End-to-End Speech Translation and Keyword Spotting. Won NAACL2022 Best Demo Award.项目地址https://gitcode.com/gh_mirrors/pa/PaddleSpeech点击查看免费下载本文围绕 PaddleSpeech 仓库中的examples/zh_en_tts/tts3示例展开完整讲解如何使用 FastSpeech2 声学模型在 CSMSC标贝、LJSpeech-1.1、AISHELL-3 与 VCTK 四个数据集上训练一个支持中英混合语音合成的多说话人 TTS 系统并覆盖从数据预处理、模型训练、声码器选择、语音合成到静态模型 / ONNX 部署的全流程。读完本文后你将能够复现该示例的完整流水线理解 FastSpeech2 的关键配置与各命令行参数的实际含义并学会用预训练模型直接合成中英混合语音。示例概览一个中英混合的多说话人 TTS 训练框架examples/zh_en_tts/tts3/README.md给出了仓库内中英文混合 TTS的标准训练示例。它的技术栈非常清晰声学模型FastSpeech2非自回归 TTS直接并行生成梅尔谱属于非自回归声学模型中的代表性方案训练数据中文数据集 CSMSCBZNSYP与 AISHELL-3英文数据集 LJSpeech-1.1 与 VCTK-Corpus-0.92四个数据集共同构成一个多说话人、双语言的训练语料时长对齐使用蒙特利尔强制对齐工具MFA产出的 TextGrid 对齐结果为 FastSpeech2 提供训练所需的音素时长标签声码器默认使用 Parallel WaveGANpwgan_aishell3并按说话人特性可替换为 HiFiGAN 等声码器。从源码结构看本示例的所有可执行逻辑都封装在examples/zh_en_tts/tts3/目录下run.sh是总入口local/下是preprocess.sh、train.sh、synthesize.sh、synthesize_e2e.sh、inference.sh、paddle2onnx.sh、ort_predict.sh等阶段脚本conf/default.yaml是完整训练配置而实际调用的训练 / 合成程序则位于 paddlespeech/t2s/exps/fastspeech2/ 与 paddlespeech/t2s/exps/。上图展示了 FastSpeech2 声学模型的整体结构它在 FastSpeech 基础上引入 pitch基频与 energy能量预测器通过显式建模韵律信息提升合成质量也是本示例训练的核心模型。数据准备四数据集与 MFA 对齐结果数据集下载与目录布局将四个数据集下载并解压到./data下训练脚本会按以下固定目录名读取CSMSC 数据集位于./data/BZNSYPLJSpeech-1.1 位于./data/LJSpeech-1.1AISHELL-3 位于./data/data_aishell3VCTK-Corpus-0.92 位于./data/VCTK-Corpus-0.92这四个数据集分别覆盖中文女声CSMSC、英文女声LJSpeech、中文多说话人AISHELL-3与英文多说话人VCTK组合后天然具备中英混合、多说话人的训练条件。获取 MFA 时长对齐结果FastSpeech2 训练需要音素级时长标签本示例使用 MFAMontreal Forced Aligner产出的对齐结果。仓库提供了四个数据集现成的 MFA 对齐压缩包位于 paddlespeech.cdn.bcebos.com 官方资源baker_alignment_tone.tar.gzCSMSC / BZNSYP带声调版本ljspeech_alignment.tar.gzLJSpeech-1.1aishell3_alignment_tone.tar.gzAISHELL-3带声调版本vctk_alignment.tar.gzVCTK-Corpus-0.92解压后假设对齐目录分别为./data/mfa/baker_alignment_tone./data/mfa/ljspeech_alignment./data/mfa/aishell3_alignment_tone./data/mfa/vctk_alignment仓库同时提供了自动下载脚本 examples/zh_en_tts/tts3/local/mfa_download.sh它会在exp/mfa目录下并行wget上述四个压缩包。也可以参考仓库内的 MFA 示例自行训练对齐模型examples/other/mfa该示例使用 MFA 1.x。一键流水线 run.sh 与阶段控制在path.sh已经 source 的环境下path.sh会设置MAIN_ROOT、BIN_DIRpaddlespeech/t2s/exps/fastspeech2等环境变量并导入parse_options.sh等工具执行./run.sh即可依次完成数据预处理、模型训练、从metadata.jsonl合成波形、从文本文件端到端合成、静态模型推理、ONNX 转换与 ONNX Runtime 推理。run.sh顶部定义了关键变量gpus0,1 stage0 stop_stage100 datasets_root_dir./data mfa_root_dir./data/mfa conf_pathconf/default.yaml train_output_pathexp/default ckpt_namesnapshot_iter_99200.pdz其中gpus指定训练所用 GPU 编号conf_path指向配置文件train_output_path为实验输出目录ckpt_name是用于合成的模型快照文件名。run.sh内部使用utils/parse_options.sh支持命令行覆盖参数./run.sh --stage 0 --stop-stage 0上面的命令只运行 stage 0数据预处理。各阶段含义如下对应 examples/zh_en_tts/tts3/run.shStage内容0数据预处理local/preprocess.sh1模型训练local/train.shcheckpoint 保存在exp/default/checkpoints/2从metadata.jsonl合成local/synthesize.sh默认声码器 pwgan3从文本端到端合成local/synthesize_e2e.sh默认声码器 pwgan4静态模型推理local/inference.sh5安装 paddle2onnx 并转换 ONNX 模型local/paddle2onnx.sh6ONNX Runtime 推理local/ort_predict.sh默认 fastspeech2 pwganrun.sh中 stage 5 还给出了声码器转换的注释建议考虑到速度与质量平衡推荐将hifigan_aishell3也转为 ONNX相关命令已在脚本中以注释形式给出hifigan_aishell3与hifigan_csmsc均可按需启用。数据预处理从时长对齐到规范化特征预处理脚本的阶段分解local/preprocess.sh接收三个参数./local/preprocess.sh ${conf_path} ${datasets_root_dir} ${mfa_root_dir}它内部划分为多个子阶段核心流程如下对应 examples/zh_en_tts/tts3/local/preprocess.sh生成时长文件对四个数据集分别调用utils/gen_duration_from_textgrid.py从 MFA 的 TextGrid 结果中解析出每个音素的时长输出durations_baker.txt、durations_ljspeech.txt、durations_aishell3.txt、durations_vctk.txt随后cat合并为durations.txt提取特征对四个数据集依次调用paddlespeech/t2s/exps/fastspeech2/preprocess.py传入--datasetbaker/ljspeech/aishell3/vctk、--rootdir、--dumpdirdump、--dur-filedurations.txt、--config与--num-cpu20 --cut-silTrue --write_metadata_methoda。其中--cut-silTrue会切除音频边缘静音--write_metadata_methoda表示以追加append方式写入同一个 metadata 文件计算统计量对dump/train/raw/metadata.jsonl分别按speech、pitch、energy三个字段调用utils/compute_statistics.py得到均值方差统计文件归一化与 id 映射对 train/dev/test 三部分依次调用paddlespeech/t2s/exps/fastspeech2/normalize.py使用训练集统计量dump/train/*_stats.npy对特征做归一化并生成dump/phone_id_map.txt音素词汇表与dump/speaker_id_map.txt说话人 id 映射。从源码看preprocess.py 会通过librosa.load按config.fs重采样读取音频利用compare_duration_and_mel_length校验音素时长与梅尔帧长的匹配关系再交由 LogMelFBank、Pitch、Energy 三个特征提取器分别产出梅尔谱、基频与能量特征。dump 目录结构预处理完成后当前目录会生成dump文件夹结构如下dump ├── dev │ ├── norm │ └── raw ├── phone_id_map.txt ├── speaker_id_map.txt ├── test │ ├── norm │ └── raw └── train ├── energy_stats.npy ├── norm ├── pitch_stats.npy ├── raw └── speech_stats.npy数据集被划分为train、dev、test三部分每部分都有raw原始特征与norm归一化后特征两个子目录raw目录存放每条话语的 speech、pitch、energy 特征norm目录存放对应归一化版本归一化统计量在训练集上计算保存在dump/train/*_stats.npy每个子目录内还有一个metadata.jsonl它是一个表格式文件逐行记录了每条话语的 phones音素、text_lengths、speech_lengths、durations、speech 特征路径、pitch 特征路径、energy 特征路径、speaker 以及 id 等信息。训练阶段就是直接以dump/train/norm/metadata.jsonl与dump/dev/norm/metadata.jsonl作为数据输入。模型训练train.sh 与 train.py 参数详解训练命令local/train.sh实际调用paddlespeech/t2s/exps/fastspeech2/train.py对应 examples/zh_en_tts/tts3/local/train.shCUDA_VISIBLE_DEVICES${gpus} ./local/train.sh ${conf_path} ${train_output_path}脚本内部等价于执行python3 ${BIN_DIR}/train.py \ --train-metadatadump/train/norm/metadata.jsonl \ --dev-metadatadump/dev/norm/metadata.jsonl \ --configconf/default.yaml \ --output-direxp/default \ --ngpu2 \ --phones-dictdump/phone_id_map.txt \ --speaker-dictdump/speaker_id_map.txttrain.py 完整参数说明train.py的完整帮助信息如下继承自原文档usage: train.py [-h] [--config CONFIG] [--train-metadata TRAIN_METADATA] [--dev-metadata DEV_METADATA] [--output-dir OUTPUT_DIR] [--ngpu NGPU] [--phones-dict PHONES_DICT] [--speaker-dict SPEAKER_DICT] [--voice-cloning VOICE_CLONING] Train a FastSpeech2 model. optional arguments: -h, --help show this help message and exit --config CONFIG fastspeech2 config file. --train-metadata TRAIN_METADATA training data. --dev-metadata DEV_METADATA dev data. --output-dir OUTPUT_DIR output dir. --ngpu NGPU if ngpu0, use cpu. --phones-dict PHONES_DICT phone vocabulary file. --speaker-dict SPEAKER_DICT speaker id map file for multiple speaker model. --voice-cloning VOICE_CLONING whether training voice cloning model.参数要点--config为 yaml 格式的配置文件用于覆盖默认配置即conf/default.yaml--train-metadata与--dev-metadata应分别指向dump中train与dev的norm子目录下的 metadata 文件--output-dir是实验结果的保存目录checkpoint 会保存在该目录下的checkpoints/子目录中--ngpu为使用的 GPU 数量ngpu 0时使用 CPU--phones-dict为音素词汇表路径--speaker-dict为训练多说话人 FastSpeech2 时所需的说话人 id 映射文件。核心配置文件 conf/default.yaml训练的全部超参数集中在 examples/zh_en_tts/tts3/conf/default.yaml可分为五大块特征提取设置采样率fs: 24000本示例声学模型训练在 24 kHz 采样率上进行这也是后续选择声码器时必须考虑的前提FFT 大小n_fft: 2048帧移n_shift: 300约 12.5ms窗长win_length: 1200约 50ms窗函数window: hann梅尔滤波组范围fmin: 80、fmax: 7600通道数n_mels: 80pitch 提取范围f0min: 80、f0max: 400。数据设置batch_size: 64num_workers: 2。模型设置model注意力维度adim: 384、注意力头数aheads: 2、编码器层数elayers: 4与 FFN 单元数eunits: 1536、解码器层数dlayers: 4与 FFN 单元数dunits: 1536position-wise 层采用conv1d卷积核positionwise_conv_kernel_size: 3时长预测器duration_predictor_layers: 2、通道duration_predictor_chans: 256、卷积核duration_predictor_kernel_size: 3后处理网络postnet_layers: 5、postnet_filts: 5、postnet_chans: 256使用缩放位置编码use_scaled_pos_enc: True编码器 / 解码器在输入前做 LayerNormencoder_normalize_before/decoder_normalize_beforereduction_factor: 1初始化方式init_type: xavier_uniform各 Transformer 层 dropout 均取 0.2pitch 预测器pitch_predictor_layers: 5、通道 256、卷积核 5、dropout 0.5stop_gradient_from_pitch_predictor: Trueenergy 预测器energy_predictor_layers: 2、通道 256、卷积核 3、dropout 0.5说话人嵌入维度spk_embed_dim: 256融合方式spk_embed_integration_type: concat。Updater 设置use_masking: True损失计算时对 padding 部分做掩码spk_loss_scale: 0.02说话人分类损失的缩放系数。优化器与训练设置optimizer.optim: adam、learning_rate: 0.001max_epoch: 200num_snapshots: 5保存 5 个快照随机种子seed: 10086。Speaker Classifier 辅助模块本示例还参照论文《Learning to Speak Fluently in a Foreign Language: Multilingual Speech Synthesis and Cross-Language Voice Cloning》为多说话人 FastSpeech2新增了说话人分类器speaker classifier模块相关配置为config[model][enable_speaker_classifier]、config[model][hidden_sc_dim]与config[updater][spk_loss_scale]。实验结果表明该模块有助于解耦文本信息与说话人信息更多实验仍在整理中当前默认不启用enable_speaker_classifier: False感兴趣可自行开启尝试。从源码可以确认该模块的实际作用机制在 fastspeech2_updater.py 中当模型启用enable_speaker_classifier且spk_num有效时前向传播会额外返回spk_logits损失函数计算得到speaker_loss后按scaled_speaker_loss spk_loss_scale * speaker_loss缩放并与 L1 谱损失、时长损失、pitch 损失、energy 损失相加构成总损失第 112-113 行。说话人分类器实现位于 paddlespeech/t2s/modules/adversarial_loss/speaker_classifier.py。语音合成声码器选择与两种合成方式声码器选择指南本示例默认使用 Parallel WaveGAN 作为声码器对应仓库的 examples/aishell3/voc1 示例需下载预训练模型pwg_aishell3_ckpt_0.5.zip并解压解压后包含pwg_aishell3_ckpt_0.5 ├── default.yaml # default config used to train parallel wavegan ├── feats_stats.npy # statistics used to normalize spectrogram when training parallel wavegan └── snapshot_iter_1000000.pdz # generator parameters of parallel wavegan由于本示例是多说话人模型声码器的选择与合成目标说话人强相关原文档给出的经验规则如下说话人174CSMSC/baker 中文女声使用 CSMSC 自己的声码器效果更好推荐 hifigan_csmsc_ckpt_0.1.1.zip可查看synthesize_e2e.sh的 stage 2说话人175LJSpeech 英文女声不建议使用 LJSpeech 自身的声码器因为 ljspeech 声码器在 22.05 kHz 采样率上训练而本示例声学模型训练在 24 kHz由于 ljspeech 与 csmsc 均为女声可以继续使用 csmsc 的声码器AISHELL-3 与 VCTK 中的说话人推荐使用 aishell3 或 vctk 的声码器。因为 ljspeech 与 csmsc 都是女声其声码器对这两组数据中的男声表现可能不佳。说话人名称与spk_id的对应关系可在dump/speaker_id_map.txt中查询说话人的年龄、性别、口音、地区等信息可从 PaddleSpeech 官方 issue 中核对据此挑选你想要的spk_id。local/synthesize.sh与local/synthesize_e2e.sh中均已写好 pwgan_aishell3stage 0、hifigan_aishell3stage 1、hifigan_csmscstage 2三种声码器的合成命令可直接按需启用。方式一从 metadata.jsonl 合成synthesize.py./local/synthesize.sh调用paddlespeech/t2s/exps/synthesize.py从metadata.jsonl合成波形CUDA_VISIBLE_DEVICES${gpus} ./local/synthesize.sh ${conf_path} ${train_output_path} ${ckpt_name}其完整帮助信息如下usage: synthesize.py [-h] [--am {speedyspeech_csmsc,fastspeech2_csmsc,fastspeech2_ljspeech,fastspeech2_aishell3,fastspeech2_vctk,tacotron2_csmsc,tacotron2_ljspeech,tacotron2_aishell3, fastspeech2_mix}] [--am_config AM_CONFIG] [--am_ckpt AM_CKPT] [--am_stat AM_STAT] [--phones_dict PHONES_DICT] [--tones_dict TONES_DICT] [--speaker_dict SPEAKER_DICT] [--voice-cloning VOICE_CLONING] [--voc {pwgan_csmsc,pwgan_ljspeech,pwgan_aishell3,pwgan_vctk,mb_melgan_csmsc,wavernn_csmsc,hifigan_csmsc,hifigan_ljspeech,hifigan_aishell3,hifigan_vctk,style_melgan_csmsc}] [--voc_config VOC_CONFIG] [--voc_ckpt VOC_CKPT] [--voc_stat VOC_STAT] [--ngpu NGPU] [--test_metadata TEST_METADATA] [--output_dir OUTPUT_DIR]--am为声学模型类型格式为{model_name}_{dataset}中英混合场景选择fastspeech2_mix--am_config、--am_ckpt、--am_stat、--phones_dict、--speaker_dict五个参数与 FastSpeech2 预训练模型中的 5 个文件一一对应--voc为声码器类型格式同样是{model_name}_{dataset}--voc_config、--voc_ckpt、--voc_stat对应 Parallel WaveGAN 预训练模型中的 3 个文件--test_metadata指向dump/test/norm/metadata.jsonl--output_dir为合成音频输出目录--ngpu 0时使用 CPU。方式二从文本文件端到端合成synthesize_e2e.py./local/synthesize_e2e.sh调用paddlespeech/t2s/exps/synthesize_e2e.py直接从文本文件合成波形CUDA_VISIBLE_DEVICES${gpus} ./local/synthesize_e2e.sh ${conf_path} ${train_output_path} ${ckpt_name}完整帮助信息如下usage: synthesize_e2e.py [-h] [--am {speedyspeech_csmsc,speedyspeech_aishell3,fastspeech2_csmsc,fastspeech2_ljspeech,fastspeech2_aishell3,fastspeech2_vctk,tacotron2_csmsc,tacotron2_ljspeech, fastspeech2_mix}] [--am_config AM_CONFIG] [--am_ckpt AM_CKPT] [--am_stat AM_STAT] [--phones_dict PHONES_DICT] [--tones_dict TONES_DICT] [--speaker_dict SPEAKER_DICT] [--spk_id SPK_ID] [--voc {pwgan_csmsc,pwgan_ljspeech,pwgan_aishell3,pwgan_vctk,mb_melgan_csmsc,style_melgan_csmsc,hifigan_csmsc,hifigan_ljspeech,hifigan_aishell3,hifigan_vctk,wavernn_csmsc}] [--voc_config VOC_CONFIG] [--voc_ckpt VOC_CKPT] [--voc_stat VOC_STAT] [--lang LANG] [--inference_dir INFERENCE_DIR] [--ngpu NGPU] [--text TEXT] [--output_dir OUTPUT_DIR]与synthesize.py相比端到端脚本多了几个关键参数--spk_id多说话人声学模型使用的说话人 id--lang模型语言取值为zh、en或mix本示例固定为mix--text待合成文本文件每行格式为utt_id sentence话语 id 与句子以空格分隔--inference_dir用于保存推理模型静态图的目录。端到端合成使用的测试文本示例位于 paddlespeech/t2s/assets/sentences_mix.txt从中可以看到中英混合文本的典型写法例如001 你好欢迎使用 Paddle Speech 中英文混合 T T S 功能开始你的合成之旅吧! 007 我喜欢 eat apple, 你喜欢 drink milk。 008 我们要去云南 team building, 非常非常 happy.注意文本中的英文单词按发音拆分为空格分隔的音素串如 T T S、team building这是前端 G2P字素到音素转换后的输入格式。预训练模型与部署链路FastSpeech2 预训练模型仓库提供了去掉音频边缘静音的预训练中英混合声学模型与配套声码器fastspeech2_mix_ckpt_1.2.0.zippwg_aishell3_ckpt_0.5.zip解压后fastspeech2_mix_ckpt_1.2.0目录包含 7 个文件fastspeech2_mix_ckpt_1.2.0 ├── default.yaml # default config used to train fastspeech2 ├── energy_stats.npy # statistics used to energy spectrogram when training fastspeech2 ├── phone_id_map.txt # phone vocabulary file when training fastspeech2 ├── pitch_stats.npy # statistics used to normalize pitch when training fastspeech2 ├── snapshot_iter_99200.pdz # model parameters and optimizer states ├── speaker_id_map.txt # speaker id map file when training a multi-speaker fastspeech2 └── speech_stats.npy # statistics used to normalize spectrogram when training fastspeech2其中speaker_id_map.txt定义了说话人 id 与名称的映射174表示 bakerCSMSC说话人175表示 ljspeech 说话人其他说话人信息同样在该文件中查询。local/model_download.sh提供了自动下载以上两个预训练模型的脚本会解压到exp/pretrain/下。使用预训练模型直接合成以下命令使用预训练 fastspeech2_mix 与 pwgan_aishell3 对sentences_mix.txt进行端到端合成对应原文档中的完整命令source path.sh FLAGS_allocator_strategynaive_best_fit \ FLAGS_fraction_of_gpu_memory_to_use0.01 \ python3 ${BIN_DIR}/../synthesize_e2e.py \ --amfastspeech2_mix \ --am_configexp/pretrain/fastspeech2_mix_ckpt_1.2.0/default.yaml \ --am_ckptexp/pretrain/fastspeech2_mix_ckpt_1.2.0/snapshot_iter_99200.pdz \ --am_statexp/pretrain/fastspeech2_mix_ckpt_1.2.0/speech_stats.npy \ --phones_dictexp/pretrain/fastspeech2_mix_ckpt_1.2.0/phone_id_map.txt \ --speaker_dictexp/pretrain/fastspeech2_mix_ckpt_1.2.0/speaker_id_map.txt \ --spk_id174 \ --vocpwgan_aishell3 \ --voc_configexp/pretrain/pwg_aishell3_ckpt_0.5/default.yaml \ --voc_ckptexp/pretrain/pwg_aishell3_ckpt_0.5/snapshot_iter_1000000.pdz \ --voc_statexp/pretrain/pwg_aishell3_ckpt_0.5/feats_stats.npy \ --langmix \ --text${BIN_DIR}/../../assets/sentences_mix.txt \ --output_direxp/default/test_e2e \ --inference_direxp/default/inference其中FLAGS_allocator_strategynaive_best_fit与FLAGS_fraction_of_gpu_memory_to_use0.01是 PaddlePaddle 的内存分配策略与显存占用比例控制项用于避免推理时占用过多 GPU 显存。静态模型 / PIR / ONNX 部署除动态图 checkpoint 外仓库还提供了多种部署形态的预训练产物静态模型fastspeech2_mix_static_0.2.0.zipPIR 静态模型fastspeech2_mix_static_pir_0.2.0.zip运行 PIR 模型需设置FLAGS_enable_pir_api1且仅支持paddlepaddle3.0.0b2ONNX 模型fastspeech2_mix_onnx_0.2.0.zip在本地自行完成动态图 → 静态图 → ONNX的转换链路则由run.sh的 stage 4-6 承担stage 4 使用local/inference.sh调用paddlespeech/t2s/exps/inference.py在静态图inference目录上推理stage 5 安装 paddle2onnx 后调用local/paddle2onnx.sh将fastspeech2_mix与pwgan_aishell3转为 ONNX--opset_version 11stage 6 调用local/ort_predict.sh使用paddlespeech/t2s/exps/ort_predict_e2e.py在 CPU 上--devicecpu --cpu_threads4用 ONNX Runtime 完成端到端合成。这一链路为后续在服务端或边缘设备部署中英混合 TTS 提供了完整参照。关键要点总结训练数据组合CSMSC LJSpeech-1.1 AISHELL-3 VCTK 四个数据集共同训练出一个中英混合、多说话人的 FastSpeech2 声学模型说话人信息通过spk_embed_dim: 256的说话人嵌入并以 concat 方式注入模型时长来源训练时长标签依赖 MFA 对齐结果可通过mfa_download.sh直接下载官方对齐包也可参考 examples/other/mfa 自行训练流水线入口run.sh以 stage 0-6 组织预处理、训练、合成、静态推理、ONNX 转换与 ORT 推理六个环节--stage X --stop-stage Y可精确控制执行范围声码器匹配原则声码器采样率需与声学模型匹配本示例为 24 kHz且说话人性别、语种会影响最终听感建议按speaker_id_map.txt中目标说话人选择 pwgan/hifigan 的对应数据集版本部署形态同一模型可导出动态图 checkpoint、静态图、PIR 静态模型与 ONNX 四种形态配合inference.py与ort_predict_e2e.py分别完成 Paddle 静态图推理与 ONNX Runtime 推理。赞分享人工智能语音音频【免费下载链接】PaddleSpeechEasy-to-use Speech Toolkit including Self-Supervised Learning model, SOTA/Streaming ASR with punctuation, Streaming TTS with text frontend, Speaker Verification System, End-to-End Speech Translation and Keyword Spotting. Won NAACL2022 Best Demo Award.项目地址https://gitcode.com/gh_mirrors/pa/PaddleSpeech点击查看免费下载相关推荐NSprites安装指南2步通过UPM添加DOTS精灵渲染包附版本兼容清单NSprites安装指南2步通过UPM添加DOTS精灵渲染包附版本兼容清单 NSprites 是一款 Unity DOTS 精灵渲染包基于 Entiti人工智能语音音频NLP媒体生成ZLUDA 故障排查指南用 zluda_trace 追踪 CUDA 调用、解读日志并定位 PTX 编译错误ZLUDA 故障排查指南用 zluda_trace 追踪 CUDA 调用、解读日志并定位 PTX 编译错误 ZLUDA 的目标是在非 NVIDIA GPU 上人工智能语音音频Solana 集群基准测试实战从 Multinode 测试网搭建到 TPS 压测与调试Solana 集群基准测试实战从 Multinode 测试网搭建到 TPS 压测与调试 本文围绕 Solana 仓库中的集群基准测试文档 docs/src/人工智能语音音频上一篇5分钟下载视频号视频res-downloader 完整上手教程下一篇OpenUSD 音频方案深度解析SpatialAudio Schema 的设计、实现与实战创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网