# SpeechParaling-Bench: A Comprehensive Benchmark for Paralinguistic-Aware Speech Generation







[[π Paper](https://arxiv.org/abs/2604.20842)] [[π Project Page](https://speechparaling-bench.github.io/)] [[π€ Dataset](https://huggingface.co/datasets/Ruohan2/SpeechParaling-Bench)]
**SpeechParaling-Bench** is a comprehensive benchmark designed to evaluate **paralinguistic-aware speech generation** capabilities of large audio-language models (LALMs). It features **100+ paralinguistic dimensions** and **1000+ Chinese-English evaluation samples**, using a **baseline-candidate comparative evaluation** approach to produce a leaderboard for mainstream multimodal large models.
## π SpeechParaling-Bench Overview
The benchmark covers three core evaluation dimensions:
- **Paralanguage Control (ε―θ―θ¨ζ§εΆ)**: Evaluates single-dimensional and multi-dimensional paralinguistic information generation capabilities
- **Dynamic Variation (ε¨ζεε)**: Assesses models' ability to dynamically adjust paralinguistic features
- **Situational Adaptation (ζ
ζ―ιεΊ)**: Tests situational empathy and context-appropriate paralinguistic expression
All instructions are aligned in both Chinese and English, covering diverse real-life scenarios such as daily life, campus, workplace, family, and entertainment. The generated content naturally and reasonably matches the required paralinguistic information.
SpeechParaling-Bench aims to reflect the challenges of LALM paralinguistic generation and support fair, transparent, and extensible evaluation of next-generation LALM models.
## π Repository Structure
```
SpeechParaling-Bench/
βββ api_models/ # API calling codes for mainstream models
β βββ doubao/ # Chinese baseline model
β β βββ output_ch/ # Chinese output audio
β β βββ output_en/ # English output audio
β βββ gemini/ # English baseline model
β β βββ output_ch/
β β βββ output_en/
β βββ gpt/
β βββ qwen-omni/
β βββ qwen-omni-realtime/
βββ audio_dataset_ch/ # Chinese audio dataset (3 dimensions)
β βββ dyn_var/ # Dynamic variation
β βββ para_con/ # Paralanguage control
β β βββ con_abs/
β β βββ con_long_multi/
β β βββ con_long_sin/
β β βββ con_short_multi/
β β βββ con_short_sin/
β βββ sit_ada/ # Situational adaptation
β βββ sit_multi/
β βββ sit_sin/
βββ audio_dataset_en/ # English audio dataset (3 dimensions)
β βββ dyn_var/
β βββ para_con/
β βββ sit_ada/
βββ jsonl_prompt_ch/ # Chinese JSONL prompts & dimensions
βββ jsonl_prompt_en/ # English JSONL prompts & dimensions
βββ judge_data/ # Evaluation data and codes
β βββ judge_code/ # Evaluation codes for 3 dimensions
β βββ result_v5/ # Evaluation outputs
β β βββ judge_json/ # Model evaluations & scores
β β βββ metadata/ # Key data for score calculation
β β βββ judge_result/ # Leaderboard results
β βββ score_calculate/ # Score calculation scripts
βββ text_jsonl_generator/ # Codes for generating jsonl_prompt
```
## ποΈ Dataset Access
The SpeechParaling-Bench dataset is available on π€ HuggingFace:
### Main Audio Datasets (Input)
| Dataset | Description | Size | Samples |
| ------------------------------------------------------------------------------------ | -------------------------------- | ------ | ------- |
| [SpeechParaling-Bench](https://huggingface.co/datasets/Ruohan2/SpeechParaling-Bench) | Chinese + English audio datasets | ~800MB | 2002 |
### Baseline Model Outputs
| Dataset | Description | Size |
| ------------------------------------------------------------------------------------------------------ | ----------------------------------- | ------ |
| [SpeechParaling-Bench-Baseline](https://huggingface.co/datasets/Ruohan2/SpeechParaling-Bench-Baseline) | Doubao (Chinese) + Gemini (English) | ~480MB |
### Dataset Statistics
| Dimension | Chinese | English | Description |
| --------- | ---------------- | ---------------- | ---------------------- |
| dyn_var | 120 samples | 120 samples | Dynamic variation |
| para_con | 691 samples | 691 samples | Paralanguage control |
| sit_ada | 190 samples | 190 samples | Situational adaptation |
| **Total** | **1001 samples** | **1001 samples** | |
## π Quick Start
### 1. Clone the Repository
```bash
git clone https://github.com/Northern-byte-bit/SpeechParaling-Bench.git
cd SpeechParaling-Bench
```
### 2. Download the Dataset
You need to download both the main audio datasets and the baseline model outputs:
```bash
pip install huggingface_hub
# Option A: Standard download
python script/download_data.py
# Option B: Faster ZIP download (Recommended for slow connections)
python script/download_data_zip.py
# Download baseline model outputs
python script/download_baseline.py
```
### 3. (Optional) Run Existing API Models
If you want to run the API models yourself to generate outputs, install the dependencies and run the scripts:
```bash
cd api_models
pip install -r requirements.txt
# Configure your API key and run MODEL_NAME/main.py
```
### 4. Prepare Your Model Output
Run your **speech-to-speech (S2S)** model on the SpeechParaling-Bench dataset and generate audio responses.
#### Sample Run Script
We provide sample run scripts using **Qwen-Omni API** in `api_models/qwen-omni-eval/` to help you get started quickly. The scripts support parallel processing and auto-retry on rate limits.
**Get API Key**: Register at [https://dashscope.console.aliyun.com/](https://dashscope.console.aliyun.com/) to get your DashScope API key.
**Install Dependencies**:
```bash
cd api_models/qwen-omni-eval
pip install -r requirements.txt
```
##### Option 1: Run All Tasks at Once (Recommended)
The `run_all_tasks.py` script automatically traverses all subdirectories in `audio_dataset_ch` and `audio_dataset_en`, processing every `.wav` file in parallel:
```bash
python api_models/qwen-omni-eval/run_all_tasks.py \
--api_key YOUR_DASHSCOPE_API_KEY \
--max_workers 5
```
##### Option 2: Run a Specific Folder Manually
If you only want to process a specific dataset folder, use `run_sample_parallel_v2.py` directly:
```bash
# Example: Process Chinese Short Single-dimension dataset
python api_models/qwen-omni-eval/run_sample_parallel_v2.py \
--input_dir audio_dataset_ch/para_con/con_short_sin \
--output_dir api_models/qwen-omni/output_ch/para_con/con_short_sin \
--api_key YOUR_DASHSCOPE_API_KEY \
--language ch \
--max_workers 5
# Example: Process English dataset
python api_models/qwen-omni-eval/run_sample_parallel_v2.py \
--input_dir audio_dataset_en/para_con/con_short_sin \
--output_dir api_models/qwen-omni/output_en/para_con/con_short_sin \
--api_key YOUR_DASHSCOPE_API_KEY \
--language en \
--max_workers 5
```
For testing, you can use `--max_files N` to process only N files:
```bash
python api_models/qwen-omni-eval/run_sample_parallel_v2.py \
--input_dir audio_dataset_ch/para_con/con_short_sin \
--output_dir api_models/qwen-omni/output_demo \
--api_key YOUR_DASHSCOPE_API_KEY \
--language ch \
--max_files 3
```
**Arguments for `run_sample_parallel_v2.py`:**
- `--input_dir`: Path to the directory containing input audio files.
- `--output_dir`: Path to the directory to save generated output audio.
- `--api_key`: Your DashScope API key (required).
- `--language`: Language of the task, either `ch` (Chinese) or `en` (English).
- `--max_files`: (Optional) Limit number of files to process (useful for testing).
- `--max_workers`: Number of parallel threads to run (default: 3).
- `--max_retries`: Maximum retries on Rate Limit (429) errors (default: 5).
#### Output Directory Structure
Format your audio output according to the structure in `api_models/doubao/output_ch/`:
```
api_models/YOUR_MODEL/
βββ output_ch/
β βββ dyn_var/ # Dynamic variation outputs
β β βββ dyn_var_001.wav
β β βββ dyn_var_002.wav
β β βββ ...
β βββ para_con/ # Paralanguage control outputs
β β βββ con_abs/
β β βββ con_long_multi/
β β βββ con_long_sin/
β β βββ con_short_multi/
β β βββ con_short_sin/
β βββ sit_ada/ # Situational adaptation outputs
β βββ sit_multi/
β βββ sit_sin/
βββ output_en/
βββ dyn_var/
βββ para_con/
βββ sit_ada/
```
### 5. Run Evaluation
Use the evaluation codes in `judge_data/judge_code/`:
1. **Configure your settings** in `judge_data/config.py`:
```python
# judge_data/config.py
API_KEY = "YOUR_API_KEY"
MY_MODEL_NAME = "YOUR_MODEL_NAME"
BASE_URL = "BASE_URL"
```
2. **Run the evaluation** (no further modification of evaluation scripts needed):
```bash
# Run all evaluations automatically
python judge_data/run_all_evaluations.py
```
### 6. Calculate Scores
After evaluation, you can calculate all module scores and the overall leaderboard score in one go:
```bash
python judge_data/run_all_calculate.py
```
- Detailed per-module scores are saved in `judge_data/result_v5/result_v5_[module]/judge_result/`.
- Final normalized aggregated scores are saved in `judge_data/score_calculate/final_results/`.
---
## π Evaluation Dimensions
| Dimension | Description | Configurations |
| ------------ | ---------------------- | ------------------------------------------------------------- |
| **dyn_var** | Dynamic Variation | Chinese/English |
| **para_con** | Paralanguage Control | Long/Short, Single/Multi-dimension, Abstract, Chinese/English |
| **sit_ada** | Situational Adaptation | Single/Multi-dimension, Chinese/English |
## π Citation
If you use SpeechParaling-Bench in your research, please cite:
```bibtex
@article{speechparaling-bench,
title={SpeechParaling-Bench: A Comprehensive Benchmark for Paralinguistic-Aware Speech Generation},
author={Liu, Ruohan and Yin, Shukang and Wang, Tao and Zhang, Dong and Zhuang, Weiji and Ren, Shuhuai and He, Ran and Shan, Caifeng and Fu, Chaoyou},
journal={arXiv preprint arXiv:2604.20842},
year={2026}
}
```
## π License
This project is licensed under the Apache-2.0 License.
## π Acknowledgements
We thank the following models and tools that made this benchmark possible:
- Gemini-2.5-Flash / Gemini-3 Pro (Evaluation)
- Doubao Realtime (Baseline)
- Gemini Audio (Baseline)
- GPT Audio
- Qwen-Omni
- Index-TTS
## π§ Contact
For questions and feedback, please open an issue on GitHub or contact [[221900134@smail.nju.edu.cn](mailto:221900134@smail.nju.edu.cn)].