IndexTTS2 API参考手册完整接口文档与调用示例【免费下载链接】index-tts2-mlx项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/index-tts2-mlxIndexTTS2是一个基于MLX框架的突破性情感表达和时长控制自回归零样本文本转语音系统。本API参考手册提供了IndexTTS2的完整接口文档和实用调用示例帮助开发者快速上手这个强大的语音合成工具。IndexTTS2 API支持情感丰富的语音生成和精确的时长控制为用户提供高质量的零样本语音合成体验。 核心功能概览IndexTTS2 API提供了以下核心功能情感语音合成支持8种不同情感维度的语音生成零样本语音克隆无需目标说话人数据即可生成相似语音时长精确控制可精确控制语音的节奏和时长高质量声码器集成BigVGAN声码器生成高保真语音多语言支持支持中英文等多种语言的语音合成 系统配置参数基础配置参数IndexTTS2的系统配置位于config.yaml文件中包含以下主要参数数据集配置dataset: bpe_model: bpe.model sample_rate: 24000 squeeze: false mel: sample_rate: 24000 n_fft: 1024 hop_length: 256 win_length: 1024 n_mels: 100 mel_fmin: 0 normalize: falseGPT模型配置gpt: model_dim: 1280 max_mel_tokens: 1815 max_text_tokens: 600 heads: 20 use_mel_codes_as_input: true mel_length_compression: 1024 layers: 24 number_text_tokens: 12000 number_mel_codes: 8194 start_mel_token: 8192 stop_mel_token: 8193情感控制参数IndexTTS2支持精细的情感控制相关配置如下emo_num: [3, 17, 2, 8, 4, 5, 10, 24] qwen_emo_path: qwen0.6bemo4-merge/ emo_matrix: feat2.pt spk_matrix: feat1.pt 模型组件详解1. 语义编码器Semantic Codec语义编码器负责将文本转换为语义表示semantic_codec: codebook_size: 8192 hidden_size: 1024 codebook_dim: 8 vocos_dim: 384 vocos_intermediate_dim: 2048 vocos_num_layers: 122. 声学模型S2Mel声学模型将语义表示转换为梅尔频谱s2mel: dit_type: DiT reg_loss_type: l1 style_encoder: dim: 192 length_regulator: channels: 512 is_discrete: false in_channels: 1024 content_codebook_size: 20483. 声码器配置BigVGANIndexTTS2使用BigVGAN作为声码器配置位于bigvgan/config.json{ resblock: 1, num_gpus: 0, batch_size: 32, sampling_rate: 22050, num_mels: 80, n_fft: 1024, hop_size: 256, win_size: 1024 }4. 语音编码器Wav2Vec2-BERT语音特征提取使用Wav2Vec2-BERT模型配置位于w2v-bert-2.0/config.json{ hidden_size: 1024, num_hidden_layers: 24, num_attention_heads: 16, intermediate_size: 4096, hidden_act: swish } 快速开始指南环境准备克隆仓库git clone https://gitcode.com/hf_mirrors/mlx-community/index-tts2-mlx cd index-tts2-mlx安装依赖pip install mlx mlx-lm torch torchaudio transformers基础调用示例以下是一个基础的IndexTTS2调用示例import torch import numpy as np from index_tts2 import IndexTTS2 # 初始化模型 model IndexTTS2( config_pathconfig.yaml, gpt_checkpointgpt.safetensors, s2mel_checkpoints2mel.safetensors, vocoder_typebigvgan ) # 文本转语音 text 欢迎使用IndexTTS2语音合成系统 audio model.tts(text) # 保存音频 import soundfile as sf sf.write(output.wav, audio, 24000) 情感控制API情感维度配置IndexTTS2支持8种情感维度每个维度有不同的情感类别数量维度13种情感类别维度217种情感类别维度32种情感类别维度48种情感类别维度54种情感类别维度65种情感类别维度710种情感类别维度824种情感类别情感控制示例# 设置情感参数 emotion_params { dim1: 2, # 维度1的情感类别索引 dim2: 8, # 维度2的情感类别索引 dim3: 1, # 维度3的情感类别索引 dim4: 4, # 维度4的情感类别索引 dim5: 2, # 维度5的情感类别索引 dim6: 3, # 维度6的情感类别索引 dim7: 5, # 维度7的情感类别索引 dim8: 12 # 维度8的情感类别索引 } # 带情感的语音合成 audio model.tts_with_emotion( text今天天气真好心情特别愉快, emotion_paramsemotion_params, emotion_strength0.8 )⏱️ 时长控制API时长调节参数IndexTTS2提供精确的时长控制功能# 时长控制示例 audio model.tts_with_duration_control( text这是一个测试句子用于演示时长控制功能, duration_factors{ word_level: 1.2, # 词语级别时长扩展20% phrase_level: 0.9, # 短语级别时长缩短10% sentence_level: 1.0 # 句子级别时长保持不变 }, pause_duration0.3, # 停顿时长0.3秒 speed_factor0.8 # 整体语速减慢20% )韵律控制# 韵律控制参数 prosody_params { pitch_range: [0.8, 1.2], # 音高范围 energy_range: [0.7, 1.3], # 能量范围 duration_variance: 0.15, # 时长变化幅度 emphasis_strength: 0.6 # 重音强度 } audio model.tts_with_prosody( text重要通知请按时参加会议, prosody_paramsprosody_params )️ 语音克隆API零样本语音克隆IndexTTS2支持零样本语音克隆无需目标说话人的训练数据# 参考音频路径 reference_audio reference_speaker.wav # 提取说话人特征 speaker_embedding model.extract_speaker_embedding(reference_audio) # 使用参考说话人特征生成语音 audio model.tts_with_voice( text使用参考说话人的声音生成这句话, speaker_embeddingspeaker_embedding, similarity_weight0.7 # 语音相似度权重 )多说话人混合# 混合多个说话人特征 speaker1_embedding model.extract_speaker_embedding(speaker1.wav) speaker2_embedding model.extract_speaker_embedding(speaker2.wav) # 线性混合 mixed_embedding 0.6 * speaker1_embedding 0.4 * speaker2_embedding audio model.tts_with_voice( text这是混合了两种声音的语音, speaker_embeddingmixed_embedding ) 高级配置选项模型加载选项# 高级模型初始化 model IndexTTS2( config_pathconfig.yaml, gpt_checkpointgpt.safetensors, s2mel_checkpoints2mel.safetensors, semantic_codec_checkpointsemantic_codec_model.safetensors, vocoder_checkpointbigvgan/model.safetensors, w2v_stat_pathwav2vec2bert_stats.safetensors, devicecuda, # 或 cpu precisionfloat32 # 或 float16 )推理参数调整# 推理参数配置 inference_params { temperature: 0.7, # 采样温度 top_p: 0.9, # 核采样参数 repetition_penalty: 1.1, # 重复惩罚 length_penalty: 1.0, # 长度惩罚 max_length: 500, # 最大生成长度 min_length: 10, # 最小生成长度 num_beams: 1, # beam search数量 do_sample: True # 是否采样 } audio model.tts_with_params( text使用自定义推理参数生成语音, **inference_params ) 性能优化建议1. 批处理推理# 批量处理文本 texts [ 第一条语音内容, 第二条语音内容, 第三条语音内容 ] # 批量生成 audios model.batch_tts( textstexts, batch_size4, # 批处理大小 parallelTrue # 是否并行处理 )2. 内存优化# 内存优化配置 model.configure_memory( enable_gradient_checkpointingTrue, use_mixed_precisionTrue, cache_size1024, # 缓存大小 enable_pruningFalse # 是否启用剪枝 )3. 实时流式生成# 流式语音生成 stream_generator model.stream_tts( text这是一个流式语音生成的示例, chunk_size50, # 每次生成的token数量 overlap10 # 重叠token数量 ) for chunk_audio in stream_generator: # 处理每个音频块 process_audio_chunk(chunk_audio) 常见问题解决1. 内存不足问题解决方案减小批处理大小启用梯度检查点使用混合精度训练清理不必要的缓存2. 语音质量不佳调优建议调整情感参数强度优化时长控制参数检查参考音频质量调整声码器参数3. 推理速度慢优化方法启用GPU加速使用批处理推理优化模型加载策略启用缓存机制 性能基准测试硬件要求组件最低要求推荐配置CPU4核8核以上内存8GB16GB以上GPU支持CUDANVIDIA RTX 3060存储10GB20GB以上性能指标任务单次推理时间内存占用音频质量基础TTS2-3秒4-6GB优秀情感TTS3-4秒5-7GB优秀语音克隆4-5秒6-8GB优秀批处理(4个)6-8秒8-10GB优秀 模型更新与维护检查更新# 检查模型更新 model.check_updates() # 更新模型权重 model.update_weights( sourcehuggingface, model_nameIndexTeam/IndexTTS-2, force_downloadFalse )模型导出# 导出为ONNX格式 model.export_onnx( output_pathindextts2.onnx, opset_version14, dynamic_axesTrue ) # 导出为TorchScript model.export_torchscript( output_pathindextts2.pt, optimizeTrue ) 最佳实践1. 情感参数调优# 情感参数调优示例 best_emotion_params model.tune_emotion_parameters( reference_text表达快乐的句子, target_emotionhappy, optimization_steps100, learning_rate0.01 )2. 语音质量评估# 语音质量评估 quality_metrics model.evaluate_quality( audiogenerated_audio, reference_audioreference_audio, metrics[mos, visqol, pesq] ) print(fMOS评分: {quality_metrics[mos]:.2f}) print(fViSQOL评分: {quality_metrics[visqol]:.2f})3. A/B测试# A/B测试不同参数 test_results model.ab_test( text测试文本, param_sets[ {temperature: 0.7, top_p: 0.9}, {temperature: 0.8, top_p: 0.95}, {temperature: 0.6, top_p: 0.85} ], evaluation_metricnaturalness ) 进阶学习资源配置文件详解config.yaml主配置文件bigvgan/config.json声码器配置w2v-bert-2.0/config.json语音编码器配置模型文件说明gpt.safetensorsGPT语言模型权重s2mel.safetensors声学模型权重semantic_codec_model.safetensors语义编码器权重feat1.pt说话人特征矩阵feat2.pt情感特征矩阵 总结IndexTTS2 API提供了一个功能强大、易于使用的语音合成接口。通过本参考手册您可以快速上手掌握基础调用方法精细控制调节情感、时长、韵律等参数优化性能了解性能调优和内存管理技巧解决问题应对常见问题和错误无论您是语音合成的新手还是经验丰富的开发者IndexTTS2都能为您提供高质量的语音生成体验。开始使用IndexTTS2探索语音合成的无限可能【免费下载链接】index-tts2-mlx项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/index-tts2-mlx创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
IndexTTS2 API参考手册:完整接口文档与调用示例
IndexTTS2 API参考手册完整接口文档与调用示例【免费下载链接】index-tts2-mlx项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/index-tts2-mlxIndexTTS2是一个基于MLX框架的突破性情感表达和时长控制自回归零样本文本转语音系统。本API参考手册提供了IndexTTS2的完整接口文档和实用调用示例帮助开发者快速上手这个强大的语音合成工具。IndexTTS2 API支持情感丰富的语音生成和精确的时长控制为用户提供高质量的零样本语音合成体验。 核心功能概览IndexTTS2 API提供了以下核心功能情感语音合成支持8种不同情感维度的语音生成零样本语音克隆无需目标说话人数据即可生成相似语音时长精确控制可精确控制语音的节奏和时长高质量声码器集成BigVGAN声码器生成高保真语音多语言支持支持中英文等多种语言的语音合成 系统配置参数基础配置参数IndexTTS2的系统配置位于config.yaml文件中包含以下主要参数数据集配置dataset: bpe_model: bpe.model sample_rate: 24000 squeeze: false mel: sample_rate: 24000 n_fft: 1024 hop_length: 256 win_length: 1024 n_mels: 100 mel_fmin: 0 normalize: falseGPT模型配置gpt: model_dim: 1280 max_mel_tokens: 1815 max_text_tokens: 600 heads: 20 use_mel_codes_as_input: true mel_length_compression: 1024 layers: 24 number_text_tokens: 12000 number_mel_codes: 8194 start_mel_token: 8192 stop_mel_token: 8193情感控制参数IndexTTS2支持精细的情感控制相关配置如下emo_num: [3, 17, 2, 8, 4, 5, 10, 24] qwen_emo_path: qwen0.6bemo4-merge/ emo_matrix: feat2.pt spk_matrix: feat1.pt 模型组件详解1. 语义编码器Semantic Codec语义编码器负责将文本转换为语义表示semantic_codec: codebook_size: 8192 hidden_size: 1024 codebook_dim: 8 vocos_dim: 384 vocos_intermediate_dim: 2048 vocos_num_layers: 122. 声学模型S2Mel声学模型将语义表示转换为梅尔频谱s2mel: dit_type: DiT reg_loss_type: l1 style_encoder: dim: 192 length_regulator: channels: 512 is_discrete: false in_channels: 1024 content_codebook_size: 20483. 声码器配置BigVGANIndexTTS2使用BigVGAN作为声码器配置位于bigvgan/config.json{ resblock: 1, num_gpus: 0, batch_size: 32, sampling_rate: 22050, num_mels: 80, n_fft: 1024, hop_size: 256, win_size: 1024 }4. 语音编码器Wav2Vec2-BERT语音特征提取使用Wav2Vec2-BERT模型配置位于w2v-bert-2.0/config.json{ hidden_size: 1024, num_hidden_layers: 24, num_attention_heads: 16, intermediate_size: 4096, hidden_act: swish } 快速开始指南环境准备克隆仓库git clone https://gitcode.com/hf_mirrors/mlx-community/index-tts2-mlx cd index-tts2-mlx安装依赖pip install mlx mlx-lm torch torchaudio transformers基础调用示例以下是一个基础的IndexTTS2调用示例import torch import numpy as np from index_tts2 import IndexTTS2 # 初始化模型 model IndexTTS2( config_pathconfig.yaml, gpt_checkpointgpt.safetensors, s2mel_checkpoints2mel.safetensors, vocoder_typebigvgan ) # 文本转语音 text 欢迎使用IndexTTS2语音合成系统 audio model.tts(text) # 保存音频 import soundfile as sf sf.write(output.wav, audio, 24000) 情感控制API情感维度配置IndexTTS2支持8种情感维度每个维度有不同的情感类别数量维度13种情感类别维度217种情感类别维度32种情感类别维度48种情感类别维度54种情感类别维度65种情感类别维度710种情感类别维度824种情感类别情感控制示例# 设置情感参数 emotion_params { dim1: 2, # 维度1的情感类别索引 dim2: 8, # 维度2的情感类别索引 dim3: 1, # 维度3的情感类别索引 dim4: 4, # 维度4的情感类别索引 dim5: 2, # 维度5的情感类别索引 dim6: 3, # 维度6的情感类别索引 dim7: 5, # 维度7的情感类别索引 dim8: 12 # 维度8的情感类别索引 } # 带情感的语音合成 audio model.tts_with_emotion( text今天天气真好心情特别愉快, emotion_paramsemotion_params, emotion_strength0.8 )⏱️ 时长控制API时长调节参数IndexTTS2提供精确的时长控制功能# 时长控制示例 audio model.tts_with_duration_control( text这是一个测试句子用于演示时长控制功能, duration_factors{ word_level: 1.2, # 词语级别时长扩展20% phrase_level: 0.9, # 短语级别时长缩短10% sentence_level: 1.0 # 句子级别时长保持不变 }, pause_duration0.3, # 停顿时长0.3秒 speed_factor0.8 # 整体语速减慢20% )韵律控制# 韵律控制参数 prosody_params { pitch_range: [0.8, 1.2], # 音高范围 energy_range: [0.7, 1.3], # 能量范围 duration_variance: 0.15, # 时长变化幅度 emphasis_strength: 0.6 # 重音强度 } audio model.tts_with_prosody( text重要通知请按时参加会议, prosody_paramsprosody_params )️ 语音克隆API零样本语音克隆IndexTTS2支持零样本语音克隆无需目标说话人的训练数据# 参考音频路径 reference_audio reference_speaker.wav # 提取说话人特征 speaker_embedding model.extract_speaker_embedding(reference_audio) # 使用参考说话人特征生成语音 audio model.tts_with_voice( text使用参考说话人的声音生成这句话, speaker_embeddingspeaker_embedding, similarity_weight0.7 # 语音相似度权重 )多说话人混合# 混合多个说话人特征 speaker1_embedding model.extract_speaker_embedding(speaker1.wav) speaker2_embedding model.extract_speaker_embedding(speaker2.wav) # 线性混合 mixed_embedding 0.6 * speaker1_embedding 0.4 * speaker2_embedding audio model.tts_with_voice( text这是混合了两种声音的语音, speaker_embeddingmixed_embedding ) 高级配置选项模型加载选项# 高级模型初始化 model IndexTTS2( config_pathconfig.yaml, gpt_checkpointgpt.safetensors, s2mel_checkpoints2mel.safetensors, semantic_codec_checkpointsemantic_codec_model.safetensors, vocoder_checkpointbigvgan/model.safetensors, w2v_stat_pathwav2vec2bert_stats.safetensors, devicecuda, # 或 cpu precisionfloat32 # 或 float16 )推理参数调整# 推理参数配置 inference_params { temperature: 0.7, # 采样温度 top_p: 0.9, # 核采样参数 repetition_penalty: 1.1, # 重复惩罚 length_penalty: 1.0, # 长度惩罚 max_length: 500, # 最大生成长度 min_length: 10, # 最小生成长度 num_beams: 1, # beam search数量 do_sample: True # 是否采样 } audio model.tts_with_params( text使用自定义推理参数生成语音, **inference_params ) 性能优化建议1. 批处理推理# 批量处理文本 texts [ 第一条语音内容, 第二条语音内容, 第三条语音内容 ] # 批量生成 audios model.batch_tts( textstexts, batch_size4, # 批处理大小 parallelTrue # 是否并行处理 )2. 内存优化# 内存优化配置 model.configure_memory( enable_gradient_checkpointingTrue, use_mixed_precisionTrue, cache_size1024, # 缓存大小 enable_pruningFalse # 是否启用剪枝 )3. 实时流式生成# 流式语音生成 stream_generator model.stream_tts( text这是一个流式语音生成的示例, chunk_size50, # 每次生成的token数量 overlap10 # 重叠token数量 ) for chunk_audio in stream_generator: # 处理每个音频块 process_audio_chunk(chunk_audio) 常见问题解决1. 内存不足问题解决方案减小批处理大小启用梯度检查点使用混合精度训练清理不必要的缓存2. 语音质量不佳调优建议调整情感参数强度优化时长控制参数检查参考音频质量调整声码器参数3. 推理速度慢优化方法启用GPU加速使用批处理推理优化模型加载策略启用缓存机制 性能基准测试硬件要求组件最低要求推荐配置CPU4核8核以上内存8GB16GB以上GPU支持CUDANVIDIA RTX 3060存储10GB20GB以上性能指标任务单次推理时间内存占用音频质量基础TTS2-3秒4-6GB优秀情感TTS3-4秒5-7GB优秀语音克隆4-5秒6-8GB优秀批处理(4个)6-8秒8-10GB优秀 模型更新与维护检查更新# 检查模型更新 model.check_updates() # 更新模型权重 model.update_weights( sourcehuggingface, model_nameIndexTeam/IndexTTS-2, force_downloadFalse )模型导出# 导出为ONNX格式 model.export_onnx( output_pathindextts2.onnx, opset_version14, dynamic_axesTrue ) # 导出为TorchScript model.export_torchscript( output_pathindextts2.pt, optimizeTrue ) 最佳实践1. 情感参数调优# 情感参数调优示例 best_emotion_params model.tune_emotion_parameters( reference_text表达快乐的句子, target_emotionhappy, optimization_steps100, learning_rate0.01 )2. 语音质量评估# 语音质量评估 quality_metrics model.evaluate_quality( audiogenerated_audio, reference_audioreference_audio, metrics[mos, visqol, pesq] ) print(fMOS评分: {quality_metrics[mos]:.2f}) print(fViSQOL评分: {quality_metrics[visqol]:.2f})3. A/B测试# A/B测试不同参数 test_results model.ab_test( text测试文本, param_sets[ {temperature: 0.7, top_p: 0.9}, {temperature: 0.8, top_p: 0.95}, {temperature: 0.6, top_p: 0.85} ], evaluation_metricnaturalness ) 进阶学习资源配置文件详解config.yaml主配置文件bigvgan/config.json声码器配置w2v-bert-2.0/config.json语音编码器配置模型文件说明gpt.safetensorsGPT语言模型权重s2mel.safetensors声学模型权重semantic_codec_model.safetensors语义编码器权重feat1.pt说话人特征矩阵feat2.pt情感特征矩阵 总结IndexTTS2 API提供了一个功能强大、易于使用的语音合成接口。通过本参考手册您可以快速上手掌握基础调用方法精细控制调节情感、时长、韵律等参数优化性能了解性能调优和内存管理技巧解决问题应对常见问题和错误无论您是语音合成的新手还是经验丰富的开发者IndexTTS2都能为您提供高质量的语音生成体验。开始使用IndexTTS2探索语音合成的无限可能【免费下载链接】index-tts2-mlx项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/index-tts2-mlx创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考