Speaker Similarity Evaluator - 新格式使用说明

概述

音色相似度评估器现在支持从JSONL文件读取输入数据,并且支持两种prompt音频输入模式:

  1. 预分割模式:直接提供S1和S2的分别音频文件
  2. 自动分割模式:提供combined prompt音频,程序自动按说话人标签分割

输入格式

JSONL文件格式

每行是一个JSON对象,必须包含以下字段:

必需字段

  • text: 待评估的文本,包含说话人标签[S1][S2]
  • output_audio: 待评估的音频文件路径

prompt音频字段(两种模式择一)

模式1:预分割模式

  • prompt_audio_speaker1: S1说话人的音频文件
  • prompt_text_speaker1: S1说话人的文本
  • prompt_audio_speaker2: S2说话人的音频文件
  • prompt_text_speaker2: S2说话人的文本

模式2:自动分割模式

  • prompt_audio: 包含两个说话人的combined音频文件
  • prompt_text: 包含说话人标签的文本,如"[S1]文本1[S2]文本2"

示例

预分割模式示例

{
  "text": "[S1]是我对不住你。[S2]没有没有!燕子幸亏咱俩没领证!",
  "prompt_audio_speaker1": "/path/to/speaker1.wav",
  "prompt_text_speaker1": "一共二十万我都记着呢。我一赚到钱就马上还给你。",
  "prompt_audio_speaker2": "/path/to/speaker2.wav", 
  "prompt_text_speaker2": "没关系,我不缺钱。",
  "output_audio": "/path/to/output.wav"
}

自动分割模式示例

{
  "text": "[S1]今天天气真好啊。[S2]是的,阳光明媚。",
  "prompt_audio": "/path/to/combined_prompt.wav",
  "prompt_text": "[S1]早上好,今天怎么样?[S2]很好,谢谢你的关心。",
  "output_audio": "/path/to/output.wav"
}

混合模式示例(同时提供两种模式,优先使用预分割)

{
  "text": "[S1]是我对不住你。[S2]没有没有!",
  "prompt_audio": "/path/to/combined.wav",
  "prompt_text": "[S1]一共二十万我都记着呢。[S2]没关系,我不缺钱。",
  "prompt_audio_speaker1": "/path/to/speaker1.wav",
  "prompt_text_speaker1": "一共二十万我都记着呢。我一赚到钱就马上还给你。",
  "prompt_audio_speaker2": "/path/to/speaker2.wav",
  "prompt_text_speaker2": "没关系,我不缺钱。",
  "output_audio": "/path/to/output.wav"
}

使用方法

命令行运行

# 使用JSONL文件输入
python test.py --jsonl_path /path/to/your/input.jsonl --output_dir /path/to/results

# 使用默认示例数据(向后兼容)
python test.py --output_dir /path/to/results

程序调用

from test import SpeakerSimilarityEvaluator

# 创建评估器
evaluator = SpeakerSimilarityEvaluator(output_dir="/path/to/results")

# 从JSONL文件处理
evaluator.process_batch_from_jsonl("/path/to/input.jsonl")

# 或者直接传入数据列表(旧接口,向后兼容)
input_data = [
    {
        'prompt_audio': "/path/to/prompt.wav",
        'prompt_text': "[S1]文本1[S2]文本2", 
        'text': "[S1]输出文本1[S2]输出文本2",
        'output_audio': "/path/to/output.wav"
    }
]
evaluator.process_batch(input_data)

优势

预分割模式的优势

  1. 更高精度:避免了自动分割可能带来的误差
  2. 更快速度:跳过音频分割步骤
  3. 更稳定:不依赖词对齐模型的准确性

自动分割模式的优势

  1. 便利性:只需要提供一个combined音频文件
  2. 向后兼容:与现有数据格式兼容

输出文件结构

results_YYYYMMDD_HHMMSS/
├── segments/           # 分割后的音频片段
├── prompts/           # prompt音频的S1和S2片段(仅自动分割模式)
├── temp/              # 临时文件(运行结束后清空)
└── results/           # 评估结果
    ├── speaker_similarity_results_YYYYMMDD_HHMMSS.jsonl
    └── evaluation_summary_YYYYMMDD_HHMMSS.json

注意事项

  1. 确保所有音频文件路径正确且文件存在
  2. 文本中的说话人标签格式必须为[S1][S2]
  3. 如果同时提供两种模式的数据,程序优先使用预分割模式
  4. JSONL文件中的每行必须是有效的JSON格式
  5. 程序会自动验证输入数据的完整性,跳过有问题的行并继续处理
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support