OpenSTBench 1.2.2__tar.gz → 1.2.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {openstbench-1.2.2/src/OpenSTBench.egg-info → openstbench-1.2.4}/PKG-INFO +58 -6
- {openstbench-1.2.2 → openstbench-1.2.4}/README.md +46 -4
- {openstbench-1.2.2 → openstbench-1.2.4}/pyproject.toml +22 -3
- {openstbench-1.2.2 → openstbench-1.2.4/src/OpenSTBench.egg-info}/PKG-INFO +58 -6
- {openstbench-1.2.2 → openstbench-1.2.4}/src/OpenSTBench.egg-info/SOURCES.txt +1 -0
- {openstbench-1.2.2 → openstbench-1.2.4}/src/OpenSTBench.egg-info/requires.txt +12 -1
- {openstbench-1.2.2 → openstbench-1.2.4}/src/openstbench/__init__.py +1 -1
- openstbench-1.2.4/src/openstbench/metricx_evaluator.py +390 -0
- {openstbench-1.2.2 → openstbench-1.2.4}/src/openstbench/speech_quality_evaluator.py +168 -168
- openstbench-1.2.4/src/openstbench/translation_evaluator.py +416 -0
- openstbench-1.2.2/src/openstbench/translation_evaluator.py +0 -295
- {openstbench-1.2.2 → openstbench-1.2.4}/LICENSE +0 -0
- {openstbench-1.2.2 → openstbench-1.2.4}/setup.cfg +0 -0
- {openstbench-1.2.2 → openstbench-1.2.4}/src/OpenSTBench.egg-info/dependency_links.txt +0 -0
- {openstbench-1.2.2 → openstbench-1.2.4}/src/OpenSTBench.egg-info/top_level.txt +0 -0
- {openstbench-1.2.2 → openstbench-1.2.4}/src/openstbench/_model_loading.py +0 -0
- {openstbench-1.2.2 → openstbench-1.2.4}/src/openstbench/emotion_evaluator.py +0 -0
- {openstbench-1.2.2 → openstbench-1.2.4}/src/openstbench/language_policy.py +0 -0
- {openstbench-1.2.2 → openstbench-1.2.4}/src/openstbench/latency/__init__.py +0 -0
- {openstbench-1.2.2 → openstbench-1.2.4}/src/openstbench/latency/agent.py +0 -0
- {openstbench-1.2.2 → openstbench-1.2.4}/src/openstbench/latency/basics.py +0 -0
- {openstbench-1.2.2 → openstbench-1.2.4}/src/openstbench/latency/cli.py +0 -0
- {openstbench-1.2.2 → openstbench-1.2.4}/src/openstbench/latency/instance.py +0 -0
- {openstbench-1.2.2 → openstbench-1.2.4}/src/openstbench/latency/metrics.py +0 -0
- {openstbench-1.2.2 → openstbench-1.2.4}/src/openstbench/latency/utils.py +0 -0
- {openstbench-1.2.2 → openstbench-1.2.4}/src/openstbench/paralinguistic_evaluator.py +0 -0
- {openstbench-1.2.2 → openstbench-1.2.4}/src/openstbench/speaker_similarity_evaluator.py +0 -0
- {openstbench-1.2.2 → openstbench-1.2.4}/src/openstbench/temporal_consistency_evaluator.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: OpenSTBench
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.4
|
|
4
4
|
Summary: Unified multidimensional evaluation toolkit for S2TT and S2ST systems in offline and streaming speech translation settings
|
|
5
5
|
Author-email: Yanjie An <691476922@qq.com>
|
|
6
6
|
License: MIT
|
|
@@ -8,7 +8,7 @@ Project-URL: Homepage, https://github.com/sjtuayj/OpenSTBench
|
|
|
8
8
|
Project-URL: Repository, https://github.com/sjtuayj/OpenSTBench
|
|
9
9
|
Project-URL: Documentation, https://github.com/sjtuayj/OpenSTBench#readme
|
|
10
10
|
Project-URL: Bug Tracker, https://github.com/sjtuayj/OpenSTBench/issues
|
|
11
|
-
Keywords: translation,evaluation,BLEU,COMET,BLEURT,speech-translation,S2TT,S2ST,streaming,latency,temporal-consistency,UTMOS,WER,speaker-preservation,emotion,paralinguistics,CLAP,audio-events
|
|
11
|
+
Keywords: translation,evaluation,BLEU,COMET,BLEURT,MetricX,speech-translation,S2TT,S2ST,streaming,latency,temporal-consistency,UTMOS,WER,speaker-preservation,emotion,paralinguistics,CLAP,audio-events
|
|
12
12
|
Classifier: Development Status :: 4 - Beta
|
|
13
13
|
Classifier: Intended Audience :: Science/Research
|
|
14
14
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
@@ -43,6 +43,12 @@ Requires-Dist: funasr; extra == "emotion"
|
|
|
43
43
|
Requires-Dist: modelscope; extra == "emotion"
|
|
44
44
|
Provides-Extra: paralinguistics
|
|
45
45
|
Requires-Dist: transformers; extra == "paralinguistics"
|
|
46
|
+
Provides-Extra: metricx
|
|
47
|
+
Requires-Dist: transformers[torch]==4.30.2; extra == "metricx"
|
|
48
|
+
Requires-Dist: sentencepiece==0.1.99; extra == "metricx"
|
|
49
|
+
Requires-Dist: datasets==2.13.1; extra == "metricx"
|
|
50
|
+
Requires-Dist: protobuf==3.20.3; extra == "metricx"
|
|
51
|
+
Requires-Dist: accelerate>=0.26.0; extra == "metricx"
|
|
46
52
|
Provides-Extra: all
|
|
47
53
|
Requires-Dist: unbabel-comet>=2.2.2; extra == "all"
|
|
48
54
|
Requires-Dist: openai-whisper; extra == "all"
|
|
@@ -50,13 +56,18 @@ Requires-Dist: jiwer; extra == "all"
|
|
|
50
56
|
Requires-Dist: opencc-python-reimplemented; extra == "all"
|
|
51
57
|
Requires-Dist: funasr; extra == "all"
|
|
52
58
|
Requires-Dist: modelscope; extra == "all"
|
|
53
|
-
Requires-Dist: transformers; extra == "all"
|
|
59
|
+
Requires-Dist: transformers[torch]==4.30.2; extra == "all"
|
|
60
|
+
Requires-Dist: sentencepiece==0.1.99; extra == "all"
|
|
61
|
+
Requires-Dist: datasets==2.13.1; extra == "all"
|
|
62
|
+
Requires-Dist: protobuf==3.20.3; extra == "all"
|
|
63
|
+
Requires-Dist: accelerate>=0.26.0; extra == "all"
|
|
54
64
|
Dynamic: license-file
|
|
55
65
|
|
|
56
66
|
# OpenSTBench
|
|
57
67
|
|
|
58
68
|
English | [中文](./README_zh.md)
|
|
59
69
|
|
|
70
|
+
[](https://arxiv.org/abs/2605.30792)
|
|
60
71
|
[](https://pypi.org/project/OpenSTBench/)
|
|
61
72
|
[](https://www.python.org/downloads/)
|
|
62
73
|
[](LICENSE)
|
|
@@ -80,6 +91,10 @@ pip install OpenSTBench
|
|
|
80
91
|
For local development:
|
|
81
92
|
|
|
82
93
|
```bash
|
|
94
|
+
git clone https://github.com/sjtuayj/OpenSTBench.git
|
|
95
|
+
cd OpenSTBench
|
|
96
|
+
conda create -n openstbench python=3.10 -y
|
|
97
|
+
conda activate openstbench
|
|
83
98
|
pip install -e .
|
|
84
99
|
```
|
|
85
100
|
|
|
@@ -91,9 +106,15 @@ pip install "OpenSTBench[whisper]"
|
|
|
91
106
|
pip install "OpenSTBench[speech_quality]"
|
|
92
107
|
pip install "OpenSTBench[emotion]"
|
|
93
108
|
pip install "OpenSTBench[paralinguistics]"
|
|
109
|
+
pip install "OpenSTBench[metricx]"
|
|
94
110
|
pip install "OpenSTBench[all]"
|
|
95
111
|
```
|
|
96
112
|
|
|
113
|
+
MetricX follows the official `google-research/metricx` runtime requirements. Installing
|
|
114
|
+
`OpenSTBench[metricx]` or `OpenSTBench[all]` pins the MetricX-compatible stack,
|
|
115
|
+
including `transformers[torch]==4.30.2`, `sentencepiece==0.1.99`,
|
|
116
|
+
`datasets==2.13.1`, `protobuf==3.20.3`, and `accelerate>=0.26.0`.
|
|
117
|
+
|
|
97
118
|
BLEURT is installed separately:
|
|
98
119
|
|
|
99
120
|
```bash
|
|
@@ -109,7 +130,7 @@ pip install git+https://github.com/lucadiliello/bleurt-pytorch.git
|
|
|
109
130
|
|
|
110
131
|
| Dimension | Evaluator | System type | Main outputs |
|
|
111
132
|
| :--- | :--- | :--- | :--- |
|
|
112
|
-
| Translation Quality | `TranslationEvaluator` | S2TT, S2ST transcripts | `sacreBLEU`, `chrF++`, `COMET`, `BLEURT` |
|
|
133
|
+
| Translation Quality | `TranslationEvaluator` | S2TT, S2ST transcripts | `sacreBLEU`, `chrF++`, `COMET`, `BLEURT`, `MetricX`, `MetricX_QE` |
|
|
113
134
|
| Speech Quality | `SpeechQualityEvaluator` | S2ST | `UTMOS`, `WER_Consistency`, `CER_Consistency` |
|
|
114
135
|
| Speech Quality | `SpeakerSimilarityEvaluator` | S2ST | `average_wavlm_large_similarity`, `average_resemblyzer_similarity` |
|
|
115
136
|
| Speech Quality | `EmotionEvaluator` | S2ST | `Emotion2Vec_Cosine_Similarity`, `Audio_Emotion_Accuracy` |
|
|
@@ -119,6 +140,12 @@ pip install git+https://github.com/lucadiliello/bleurt-pytorch.git
|
|
|
119
140
|
|
|
120
141
|
Offline and streaming are supported system settings, not separate metric dimensions. Use the evaluators that match the available outputs: text, generated speech, source/target audio pairs, event annotations, or streaming traces.
|
|
121
142
|
|
|
143
|
+
## Experimental Overview
|
|
144
|
+
|
|
145
|
+
The radar plot below illustrates the multidimensional view produced by OpenSTBench for representative streaming and offline speech translation systems. It summarizes how systems can differ across translation quality, speech quality, and temporal quality: a system with strong translation quality may still show different behavior in speech realization, speaker or emotion preservation, paralinguistic fidelity, temporal consistency, and latency or efficiency.
|
|
146
|
+
|
|
147
|
+

|
|
148
|
+
|
|
122
149
|
## Datasets
|
|
123
150
|
|
|
124
151
|
The paper uses the following datasets. Please follow the license and access terms of each original dataset.
|
|
@@ -126,7 +153,7 @@ The paper uses the following datasets. Please follow the license and access term
|
|
|
126
153
|
| Dataset | Used for | Link |
|
|
127
154
|
| :--- | :--- | :--- |
|
|
128
155
|
| MSLT dev | Translation quality, speech quality, temporal consistency, latency | [Microsoft Speech Language Translation Corpus](https://www.microsoft.com/en-us/download/details.aspx?id=54689) |
|
|
129
|
-
| LibriTTS-based paired speaker set | Speaker preservation | The constructed OpenSTBench paired set
|
|
156
|
+
| LibriTTS-based paired speaker set | Speaker preservation | The constructed OpenSTBench paired set is available on [Hugging Face Datasets](https://huggingface.co/datasets/ayj111/openstbench-paired-set); the source corpus is [LibriTTS](https://www.openslr.org/60/) |
|
|
130
157
|
| RAVDESS | Emotion preservation | [Audio_Speech_Actors_01-24.zip](https://zenodo.org/records/1188976) from the RAVDESS Zenodo record |
|
|
131
158
|
| MCAE-SPPS | Emotion preservation | [MCAE-SPPS on OSF](https://doi.org/10.17605/OSF.IO/9JYZC) |
|
|
132
159
|
| NonverbalTTS test | Paralinguistic fidelity | [deepvk/NonverbalTTS](https://huggingface.co/datasets/deepvk/NonverbalTTS) |
|
|
@@ -142,6 +169,7 @@ evaluator = TranslationEvaluator(
|
|
|
142
169
|
use_chrf=True,
|
|
143
170
|
use_comet=False,
|
|
144
171
|
use_bleurt=False,
|
|
172
|
+
use_metricx=True,
|
|
145
173
|
device="cuda",
|
|
146
174
|
)
|
|
147
175
|
|
|
@@ -183,7 +211,31 @@ python -m openstbench.latency.cli --help
|
|
|
183
211
|
- For `zh`, `ja`, and `ko`, speech consistency reports `CER_Consistency`; other languages report `WER_Consistency`.
|
|
184
212
|
- Evaluators that accept pretrained model sources use a local-first rule. If the supplied local path exists, OpenSTBench uses it; otherwise it falls back to the configured remote model id.
|
|
185
213
|
- Optional dependencies are loaded only when the corresponding evaluator needs them.
|
|
186
|
-
|
|
214
|
+
- MetricX is enabled by default in `TranslationEvaluator`. It follows the official google-research/metricx README, uses text only, reports error scores in `[0, 25]` where lower is better, and can be disabled with `use_metricx=False`.
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
## Acknowledgements
|
|
218
|
+
|
|
219
|
+
- We especially thank [SimulEval](https://github.com/facebookresearch/SimulEval), from which parts of OpenSTBench's latency evaluation components are adapted
|
|
220
|
+
- [sacreBLEU](https://github.com/mjpost/sacrebleu), [COMET](https://github.com/Unbabel/COMET), [MetricX](https://github.com/google-research/metricx), and [bleurt-pytorch](https://github.com/lucadiliello/bleurt-pytorch), a PyTorch port of [BLEURT](https://github.com/google-research/bleurt), for translation quality evaluation
|
|
221
|
+
- [Whisper](https://github.com/openai/whisper), [SpeechMOS/UTMOS](https://github.com/tarepan/SpeechMOS), [Resemblyzer](https://github.com/resemble-ai/Resemblyzer), and [WavLM](https://github.com/microsoft/unilm/tree/master/wavlm) for speech quality and speaker similarity evaluation
|
|
222
|
+
- [FunASR](https://github.com/modelscope/FunASR) and [Emotion2Vec](https://modelscope.cn/models/iic/emotion2vec_plus_large) for emotion preservation evaluation
|
|
223
|
+
- [CLAP](https://huggingface.co/laion/clap-htsat-fused) and [Hugging Face Transformers](https://github.com/huggingface/transformers) for paralinguistic event evaluation
|
|
224
|
+
|
|
225
|
+
## Citation
|
|
226
|
+
If you find our work useful, please cite as:
|
|
227
|
+
|
|
228
|
+
```bibtex
|
|
229
|
+
@misc{an2026openstbenchsemanticevaluationspeech,
|
|
230
|
+
title={OpenSTBench: Beyond Semantic Evaluation for Speech Translation},
|
|
231
|
+
author={Yanjie An and Yuxiang Zhao and Yichi Zhang and Qixi Zheng and Yujie Tu and Keqi Deng and Kai Yu and Xie Chen},
|
|
232
|
+
year={2026},
|
|
233
|
+
eprint={2605.30792},
|
|
234
|
+
archivePrefix={arXiv},
|
|
235
|
+
primaryClass={eess.AS},
|
|
236
|
+
url={https://arxiv.org/abs/2605.30792},
|
|
237
|
+
}
|
|
238
|
+
```
|
|
187
239
|
|
|
188
240
|
## License
|
|
189
241
|
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
English | [中文](./README_zh.md)
|
|
4
4
|
|
|
5
|
+
[](https://arxiv.org/abs/2605.30792)
|
|
5
6
|
[](https://pypi.org/project/OpenSTBench/)
|
|
6
7
|
[](https://www.python.org/downloads/)
|
|
7
8
|
[](LICENSE)
|
|
@@ -25,6 +26,10 @@ pip install OpenSTBench
|
|
|
25
26
|
For local development:
|
|
26
27
|
|
|
27
28
|
```bash
|
|
29
|
+
git clone https://github.com/sjtuayj/OpenSTBench.git
|
|
30
|
+
cd OpenSTBench
|
|
31
|
+
conda create -n openstbench python=3.10 -y
|
|
32
|
+
conda activate openstbench
|
|
28
33
|
pip install -e .
|
|
29
34
|
```
|
|
30
35
|
|
|
@@ -36,9 +41,15 @@ pip install "OpenSTBench[whisper]"
|
|
|
36
41
|
pip install "OpenSTBench[speech_quality]"
|
|
37
42
|
pip install "OpenSTBench[emotion]"
|
|
38
43
|
pip install "OpenSTBench[paralinguistics]"
|
|
44
|
+
pip install "OpenSTBench[metricx]"
|
|
39
45
|
pip install "OpenSTBench[all]"
|
|
40
46
|
```
|
|
41
47
|
|
|
48
|
+
MetricX follows the official `google-research/metricx` runtime requirements. Installing
|
|
49
|
+
`OpenSTBench[metricx]` or `OpenSTBench[all]` pins the MetricX-compatible stack,
|
|
50
|
+
including `transformers[torch]==4.30.2`, `sentencepiece==0.1.99`,
|
|
51
|
+
`datasets==2.13.1`, `protobuf==3.20.3`, and `accelerate>=0.26.0`.
|
|
52
|
+
|
|
42
53
|
BLEURT is installed separately:
|
|
43
54
|
|
|
44
55
|
```bash
|
|
@@ -54,7 +65,7 @@ pip install git+https://github.com/lucadiliello/bleurt-pytorch.git
|
|
|
54
65
|
|
|
55
66
|
| Dimension | Evaluator | System type | Main outputs |
|
|
56
67
|
| :--- | :--- | :--- | :--- |
|
|
57
|
-
| Translation Quality | `TranslationEvaluator` | S2TT, S2ST transcripts | `sacreBLEU`, `chrF++`, `COMET`, `BLEURT` |
|
|
68
|
+
| Translation Quality | `TranslationEvaluator` | S2TT, S2ST transcripts | `sacreBLEU`, `chrF++`, `COMET`, `BLEURT`, `MetricX`, `MetricX_QE` |
|
|
58
69
|
| Speech Quality | `SpeechQualityEvaluator` | S2ST | `UTMOS`, `WER_Consistency`, `CER_Consistency` |
|
|
59
70
|
| Speech Quality | `SpeakerSimilarityEvaluator` | S2ST | `average_wavlm_large_similarity`, `average_resemblyzer_similarity` |
|
|
60
71
|
| Speech Quality | `EmotionEvaluator` | S2ST | `Emotion2Vec_Cosine_Similarity`, `Audio_Emotion_Accuracy` |
|
|
@@ -64,6 +75,12 @@ pip install git+https://github.com/lucadiliello/bleurt-pytorch.git
|
|
|
64
75
|
|
|
65
76
|
Offline and streaming are supported system settings, not separate metric dimensions. Use the evaluators that match the available outputs: text, generated speech, source/target audio pairs, event annotations, or streaming traces.
|
|
66
77
|
|
|
78
|
+
## Experimental Overview
|
|
79
|
+
|
|
80
|
+
The radar plot below illustrates the multidimensional view produced by OpenSTBench for representative streaming and offline speech translation systems. It summarizes how systems can differ across translation quality, speech quality, and temporal quality: a system with strong translation quality may still show different behavior in speech realization, speaker or emotion preservation, paralinguistic fidelity, temporal consistency, and latency or efficiency.
|
|
81
|
+
|
|
82
|
+

|
|
83
|
+
|
|
67
84
|
## Datasets
|
|
68
85
|
|
|
69
86
|
The paper uses the following datasets. Please follow the license and access terms of each original dataset.
|
|
@@ -71,7 +88,7 @@ The paper uses the following datasets. Please follow the license and access term
|
|
|
71
88
|
| Dataset | Used for | Link |
|
|
72
89
|
| :--- | :--- | :--- |
|
|
73
90
|
| MSLT dev | Translation quality, speech quality, temporal consistency, latency | [Microsoft Speech Language Translation Corpus](https://www.microsoft.com/en-us/download/details.aspx?id=54689) |
|
|
74
|
-
| LibriTTS-based paired speaker set | Speaker preservation | The constructed OpenSTBench paired set
|
|
91
|
+
| LibriTTS-based paired speaker set | Speaker preservation | The constructed OpenSTBench paired set is available on [Hugging Face Datasets](https://huggingface.co/datasets/ayj111/openstbench-paired-set); the source corpus is [LibriTTS](https://www.openslr.org/60/) |
|
|
75
92
|
| RAVDESS | Emotion preservation | [Audio_Speech_Actors_01-24.zip](https://zenodo.org/records/1188976) from the RAVDESS Zenodo record |
|
|
76
93
|
| MCAE-SPPS | Emotion preservation | [MCAE-SPPS on OSF](https://doi.org/10.17605/OSF.IO/9JYZC) |
|
|
77
94
|
| NonverbalTTS test | Paralinguistic fidelity | [deepvk/NonverbalTTS](https://huggingface.co/datasets/deepvk/NonverbalTTS) |
|
|
@@ -87,6 +104,7 @@ evaluator = TranslationEvaluator(
|
|
|
87
104
|
use_chrf=True,
|
|
88
105
|
use_comet=False,
|
|
89
106
|
use_bleurt=False,
|
|
107
|
+
use_metricx=True,
|
|
90
108
|
device="cuda",
|
|
91
109
|
)
|
|
92
110
|
|
|
@@ -128,7 +146,31 @@ python -m openstbench.latency.cli --help
|
|
|
128
146
|
- For `zh`, `ja`, and `ko`, speech consistency reports `CER_Consistency`; other languages report `WER_Consistency`.
|
|
129
147
|
- Evaluators that accept pretrained model sources use a local-first rule. If the supplied local path exists, OpenSTBench uses it; otherwise it falls back to the configured remote model id.
|
|
130
148
|
- Optional dependencies are loaded only when the corresponding evaluator needs them.
|
|
131
|
-
|
|
149
|
+
- MetricX is enabled by default in `TranslationEvaluator`. It follows the official google-research/metricx README, uses text only, reports error scores in `[0, 25]` where lower is better, and can be disabled with `use_metricx=False`.
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
## Acknowledgements
|
|
153
|
+
|
|
154
|
+
- We especially thank [SimulEval](https://github.com/facebookresearch/SimulEval), from which parts of OpenSTBench's latency evaluation components are adapted
|
|
155
|
+
- [sacreBLEU](https://github.com/mjpost/sacrebleu), [COMET](https://github.com/Unbabel/COMET), [MetricX](https://github.com/google-research/metricx), and [bleurt-pytorch](https://github.com/lucadiliello/bleurt-pytorch), a PyTorch port of [BLEURT](https://github.com/google-research/bleurt), for translation quality evaluation
|
|
156
|
+
- [Whisper](https://github.com/openai/whisper), [SpeechMOS/UTMOS](https://github.com/tarepan/SpeechMOS), [Resemblyzer](https://github.com/resemble-ai/Resemblyzer), and [WavLM](https://github.com/microsoft/unilm/tree/master/wavlm) for speech quality and speaker similarity evaluation
|
|
157
|
+
- [FunASR](https://github.com/modelscope/FunASR) and [Emotion2Vec](https://modelscope.cn/models/iic/emotion2vec_plus_large) for emotion preservation evaluation
|
|
158
|
+
- [CLAP](https://huggingface.co/laion/clap-htsat-fused) and [Hugging Face Transformers](https://github.com/huggingface/transformers) for paralinguistic event evaluation
|
|
159
|
+
|
|
160
|
+
## Citation
|
|
161
|
+
If you find our work useful, please cite as:
|
|
162
|
+
|
|
163
|
+
```bibtex
|
|
164
|
+
@misc{an2026openstbenchsemanticevaluationspeech,
|
|
165
|
+
title={OpenSTBench: Beyond Semantic Evaluation for Speech Translation},
|
|
166
|
+
author={Yanjie An and Yuxiang Zhao and Yichi Zhang and Qixi Zheng and Yujie Tu and Keqi Deng and Kai Yu and Xie Chen},
|
|
167
|
+
year={2026},
|
|
168
|
+
eprint={2605.30792},
|
|
169
|
+
archivePrefix={arXiv},
|
|
170
|
+
primaryClass={eess.AS},
|
|
171
|
+
url={https://arxiv.org/abs/2605.30792},
|
|
172
|
+
}
|
|
173
|
+
```
|
|
132
174
|
|
|
133
175
|
## License
|
|
134
176
|
|
|
@@ -136,4 +178,4 @@ OpenSTBench's original code is released under the MIT License. See [LICENSE](LIC
|
|
|
136
178
|
|
|
137
179
|
Some latency evaluation components include code adapted from [SimulEval](https://github.com/facebookresearch/SimulEval), which is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License (CC BY-SA 4.0). Those adapted portions are distributed under CC BY-SA 4.0. See [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) for details.
|
|
138
180
|
|
|
139
|
-
The datasets referenced by OpenSTBench, including the datasets used in the paper, are not covered by the OpenSTBench code license. They are provided by their original authors or distributors under their own licenses and terms of use. Some datasets are restricted to research or non-commercial use.
|
|
181
|
+
The datasets referenced by OpenSTBench, including the datasets used in the paper, are not covered by the OpenSTBench code license. They are provided by their original authors or distributors under their own licenses and terms of use. Some datasets are restricted to research or non-commercial use.
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "OpenSTBench"
|
|
7
|
-
version = "1.2.
|
|
7
|
+
version = "1.2.4"
|
|
8
8
|
description = "Unified multidimensional evaluation toolkit for S2TT and S2ST systems in offline and streaming speech translation settings"
|
|
9
9
|
readme = {file = "README.md", content-type = "text/markdown"}
|
|
10
10
|
requires-python = ">=3.9,<3.11"
|
|
@@ -14,7 +14,7 @@ authors = [
|
|
|
14
14
|
]
|
|
15
15
|
|
|
16
16
|
keywords = [
|
|
17
|
-
"translation", "evaluation", "BLEU", "COMET", "BLEURT",
|
|
17
|
+
"translation", "evaluation", "BLEU", "COMET", "BLEURT", "MetricX",
|
|
18
18
|
"speech-translation", "S2TT", "S2ST", "streaming", "latency",
|
|
19
19
|
"temporal-consistency", "UTMOS", "WER", "speaker-preservation",
|
|
20
20
|
"emotion", "paralinguistics", "CLAP", "audio-events"
|
|
@@ -57,7 +57,26 @@ whisper = ["openai-whisper"]
|
|
|
57
57
|
speech_quality = ["jiwer", "opencc-python-reimplemented"]
|
|
58
58
|
emotion = ["funasr", "modelscope"]
|
|
59
59
|
paralinguistics = ["transformers"]
|
|
60
|
-
|
|
60
|
+
metricx = [
|
|
61
|
+
"transformers[torch]==4.30.2",
|
|
62
|
+
"sentencepiece==0.1.99",
|
|
63
|
+
"datasets==2.13.1",
|
|
64
|
+
"protobuf==3.20.3",
|
|
65
|
+
"accelerate>=0.26.0",
|
|
66
|
+
]
|
|
67
|
+
all = [
|
|
68
|
+
"unbabel-comet>=2.2.2",
|
|
69
|
+
"openai-whisper",
|
|
70
|
+
"jiwer",
|
|
71
|
+
"opencc-python-reimplemented",
|
|
72
|
+
"funasr",
|
|
73
|
+
"modelscope",
|
|
74
|
+
"transformers[torch]==4.30.2",
|
|
75
|
+
"sentencepiece==0.1.99",
|
|
76
|
+
"datasets==2.13.1",
|
|
77
|
+
"protobuf==3.20.3",
|
|
78
|
+
"accelerate>=0.26.0",
|
|
79
|
+
]
|
|
61
80
|
|
|
62
81
|
[tool.setuptools]
|
|
63
82
|
package-dir = {"" = "src"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: OpenSTBench
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.4
|
|
4
4
|
Summary: Unified multidimensional evaluation toolkit for S2TT and S2ST systems in offline and streaming speech translation settings
|
|
5
5
|
Author-email: Yanjie An <691476922@qq.com>
|
|
6
6
|
License: MIT
|
|
@@ -8,7 +8,7 @@ Project-URL: Homepage, https://github.com/sjtuayj/OpenSTBench
|
|
|
8
8
|
Project-URL: Repository, https://github.com/sjtuayj/OpenSTBench
|
|
9
9
|
Project-URL: Documentation, https://github.com/sjtuayj/OpenSTBench#readme
|
|
10
10
|
Project-URL: Bug Tracker, https://github.com/sjtuayj/OpenSTBench/issues
|
|
11
|
-
Keywords: translation,evaluation,BLEU,COMET,BLEURT,speech-translation,S2TT,S2ST,streaming,latency,temporal-consistency,UTMOS,WER,speaker-preservation,emotion,paralinguistics,CLAP,audio-events
|
|
11
|
+
Keywords: translation,evaluation,BLEU,COMET,BLEURT,MetricX,speech-translation,S2TT,S2ST,streaming,latency,temporal-consistency,UTMOS,WER,speaker-preservation,emotion,paralinguistics,CLAP,audio-events
|
|
12
12
|
Classifier: Development Status :: 4 - Beta
|
|
13
13
|
Classifier: Intended Audience :: Science/Research
|
|
14
14
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
@@ -43,6 +43,12 @@ Requires-Dist: funasr; extra == "emotion"
|
|
|
43
43
|
Requires-Dist: modelscope; extra == "emotion"
|
|
44
44
|
Provides-Extra: paralinguistics
|
|
45
45
|
Requires-Dist: transformers; extra == "paralinguistics"
|
|
46
|
+
Provides-Extra: metricx
|
|
47
|
+
Requires-Dist: transformers[torch]==4.30.2; extra == "metricx"
|
|
48
|
+
Requires-Dist: sentencepiece==0.1.99; extra == "metricx"
|
|
49
|
+
Requires-Dist: datasets==2.13.1; extra == "metricx"
|
|
50
|
+
Requires-Dist: protobuf==3.20.3; extra == "metricx"
|
|
51
|
+
Requires-Dist: accelerate>=0.26.0; extra == "metricx"
|
|
46
52
|
Provides-Extra: all
|
|
47
53
|
Requires-Dist: unbabel-comet>=2.2.2; extra == "all"
|
|
48
54
|
Requires-Dist: openai-whisper; extra == "all"
|
|
@@ -50,13 +56,18 @@ Requires-Dist: jiwer; extra == "all"
|
|
|
50
56
|
Requires-Dist: opencc-python-reimplemented; extra == "all"
|
|
51
57
|
Requires-Dist: funasr; extra == "all"
|
|
52
58
|
Requires-Dist: modelscope; extra == "all"
|
|
53
|
-
Requires-Dist: transformers; extra == "all"
|
|
59
|
+
Requires-Dist: transformers[torch]==4.30.2; extra == "all"
|
|
60
|
+
Requires-Dist: sentencepiece==0.1.99; extra == "all"
|
|
61
|
+
Requires-Dist: datasets==2.13.1; extra == "all"
|
|
62
|
+
Requires-Dist: protobuf==3.20.3; extra == "all"
|
|
63
|
+
Requires-Dist: accelerate>=0.26.0; extra == "all"
|
|
54
64
|
Dynamic: license-file
|
|
55
65
|
|
|
56
66
|
# OpenSTBench
|
|
57
67
|
|
|
58
68
|
English | [中文](./README_zh.md)
|
|
59
69
|
|
|
70
|
+
[](https://arxiv.org/abs/2605.30792)
|
|
60
71
|
[](https://pypi.org/project/OpenSTBench/)
|
|
61
72
|
[](https://www.python.org/downloads/)
|
|
62
73
|
[](LICENSE)
|
|
@@ -80,6 +91,10 @@ pip install OpenSTBench
|
|
|
80
91
|
For local development:
|
|
81
92
|
|
|
82
93
|
```bash
|
|
94
|
+
git clone https://github.com/sjtuayj/OpenSTBench.git
|
|
95
|
+
cd OpenSTBench
|
|
96
|
+
conda create -n openstbench python=3.10 -y
|
|
97
|
+
conda activate openstbench
|
|
83
98
|
pip install -e .
|
|
84
99
|
```
|
|
85
100
|
|
|
@@ -91,9 +106,15 @@ pip install "OpenSTBench[whisper]"
|
|
|
91
106
|
pip install "OpenSTBench[speech_quality]"
|
|
92
107
|
pip install "OpenSTBench[emotion]"
|
|
93
108
|
pip install "OpenSTBench[paralinguistics]"
|
|
109
|
+
pip install "OpenSTBench[metricx]"
|
|
94
110
|
pip install "OpenSTBench[all]"
|
|
95
111
|
```
|
|
96
112
|
|
|
113
|
+
MetricX follows the official `google-research/metricx` runtime requirements. Installing
|
|
114
|
+
`OpenSTBench[metricx]` or `OpenSTBench[all]` pins the MetricX-compatible stack,
|
|
115
|
+
including `transformers[torch]==4.30.2`, `sentencepiece==0.1.99`,
|
|
116
|
+
`datasets==2.13.1`, `protobuf==3.20.3`, and `accelerate>=0.26.0`.
|
|
117
|
+
|
|
97
118
|
BLEURT is installed separately:
|
|
98
119
|
|
|
99
120
|
```bash
|
|
@@ -109,7 +130,7 @@ pip install git+https://github.com/lucadiliello/bleurt-pytorch.git
|
|
|
109
130
|
|
|
110
131
|
| Dimension | Evaluator | System type | Main outputs |
|
|
111
132
|
| :--- | :--- | :--- | :--- |
|
|
112
|
-
| Translation Quality | `TranslationEvaluator` | S2TT, S2ST transcripts | `sacreBLEU`, `chrF++`, `COMET`, `BLEURT` |
|
|
133
|
+
| Translation Quality | `TranslationEvaluator` | S2TT, S2ST transcripts | `sacreBLEU`, `chrF++`, `COMET`, `BLEURT`, `MetricX`, `MetricX_QE` |
|
|
113
134
|
| Speech Quality | `SpeechQualityEvaluator` | S2ST | `UTMOS`, `WER_Consistency`, `CER_Consistency` |
|
|
114
135
|
| Speech Quality | `SpeakerSimilarityEvaluator` | S2ST | `average_wavlm_large_similarity`, `average_resemblyzer_similarity` |
|
|
115
136
|
| Speech Quality | `EmotionEvaluator` | S2ST | `Emotion2Vec_Cosine_Similarity`, `Audio_Emotion_Accuracy` |
|
|
@@ -119,6 +140,12 @@ pip install git+https://github.com/lucadiliello/bleurt-pytorch.git
|
|
|
119
140
|
|
|
120
141
|
Offline and streaming are supported system settings, not separate metric dimensions. Use the evaluators that match the available outputs: text, generated speech, source/target audio pairs, event annotations, or streaming traces.
|
|
121
142
|
|
|
143
|
+
## Experimental Overview
|
|
144
|
+
|
|
145
|
+
The radar plot below illustrates the multidimensional view produced by OpenSTBench for representative streaming and offline speech translation systems. It summarizes how systems can differ across translation quality, speech quality, and temporal quality: a system with strong translation quality may still show different behavior in speech realization, speaker or emotion preservation, paralinguistic fidelity, temporal consistency, and latency or efficiency.
|
|
146
|
+
|
|
147
|
+

|
|
148
|
+
|
|
122
149
|
## Datasets
|
|
123
150
|
|
|
124
151
|
The paper uses the following datasets. Please follow the license and access terms of each original dataset.
|
|
@@ -126,7 +153,7 @@ The paper uses the following datasets. Please follow the license and access term
|
|
|
126
153
|
| Dataset | Used for | Link |
|
|
127
154
|
| :--- | :--- | :--- |
|
|
128
155
|
| MSLT dev | Translation quality, speech quality, temporal consistency, latency | [Microsoft Speech Language Translation Corpus](https://www.microsoft.com/en-us/download/details.aspx?id=54689) |
|
|
129
|
-
| LibriTTS-based paired speaker set | Speaker preservation | The constructed OpenSTBench paired set
|
|
156
|
+
| LibriTTS-based paired speaker set | Speaker preservation | The constructed OpenSTBench paired set is available on [Hugging Face Datasets](https://huggingface.co/datasets/ayj111/openstbench-paired-set); the source corpus is [LibriTTS](https://www.openslr.org/60/) |
|
|
130
157
|
| RAVDESS | Emotion preservation | [Audio_Speech_Actors_01-24.zip](https://zenodo.org/records/1188976) from the RAVDESS Zenodo record |
|
|
131
158
|
| MCAE-SPPS | Emotion preservation | [MCAE-SPPS on OSF](https://doi.org/10.17605/OSF.IO/9JYZC) |
|
|
132
159
|
| NonverbalTTS test | Paralinguistic fidelity | [deepvk/NonverbalTTS](https://huggingface.co/datasets/deepvk/NonverbalTTS) |
|
|
@@ -142,6 +169,7 @@ evaluator = TranslationEvaluator(
|
|
|
142
169
|
use_chrf=True,
|
|
143
170
|
use_comet=False,
|
|
144
171
|
use_bleurt=False,
|
|
172
|
+
use_metricx=True,
|
|
145
173
|
device="cuda",
|
|
146
174
|
)
|
|
147
175
|
|
|
@@ -183,7 +211,31 @@ python -m openstbench.latency.cli --help
|
|
|
183
211
|
- For `zh`, `ja`, and `ko`, speech consistency reports `CER_Consistency`; other languages report `WER_Consistency`.
|
|
184
212
|
- Evaluators that accept pretrained model sources use a local-first rule. If the supplied local path exists, OpenSTBench uses it; otherwise it falls back to the configured remote model id.
|
|
185
213
|
- Optional dependencies are loaded only when the corresponding evaluator needs them.
|
|
186
|
-
|
|
214
|
+
- MetricX is enabled by default in `TranslationEvaluator`. It follows the official google-research/metricx README, uses text only, reports error scores in `[0, 25]` where lower is better, and can be disabled with `use_metricx=False`.
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
## Acknowledgements
|
|
218
|
+
|
|
219
|
+
- We especially thank [SimulEval](https://github.com/facebookresearch/SimulEval), from which parts of OpenSTBench's latency evaluation components are adapted
|
|
220
|
+
- [sacreBLEU](https://github.com/mjpost/sacrebleu), [COMET](https://github.com/Unbabel/COMET), [MetricX](https://github.com/google-research/metricx), and [bleurt-pytorch](https://github.com/lucadiliello/bleurt-pytorch), a PyTorch port of [BLEURT](https://github.com/google-research/bleurt), for translation quality evaluation
|
|
221
|
+
- [Whisper](https://github.com/openai/whisper), [SpeechMOS/UTMOS](https://github.com/tarepan/SpeechMOS), [Resemblyzer](https://github.com/resemble-ai/Resemblyzer), and [WavLM](https://github.com/microsoft/unilm/tree/master/wavlm) for speech quality and speaker similarity evaluation
|
|
222
|
+
- [FunASR](https://github.com/modelscope/FunASR) and [Emotion2Vec](https://modelscope.cn/models/iic/emotion2vec_plus_large) for emotion preservation evaluation
|
|
223
|
+
- [CLAP](https://huggingface.co/laion/clap-htsat-fused) and [Hugging Face Transformers](https://github.com/huggingface/transformers) for paralinguistic event evaluation
|
|
224
|
+
|
|
225
|
+
## Citation
|
|
226
|
+
If you find our work useful, please cite as:
|
|
227
|
+
|
|
228
|
+
```bibtex
|
|
229
|
+
@misc{an2026openstbenchsemanticevaluationspeech,
|
|
230
|
+
title={OpenSTBench: Beyond Semantic Evaluation for Speech Translation},
|
|
231
|
+
author={Yanjie An and Yuxiang Zhao and Yichi Zhang and Qixi Zheng and Yujie Tu and Keqi Deng and Kai Yu and Xie Chen},
|
|
232
|
+
year={2026},
|
|
233
|
+
eprint={2605.30792},
|
|
234
|
+
archivePrefix={arXiv},
|
|
235
|
+
primaryClass={eess.AS},
|
|
236
|
+
url={https://arxiv.org/abs/2605.30792},
|
|
237
|
+
}
|
|
238
|
+
```
|
|
187
239
|
|
|
188
240
|
## License
|
|
189
241
|
|
|
@@ -10,6 +10,7 @@ src/openstbench/__init__.py
|
|
|
10
10
|
src/openstbench/_model_loading.py
|
|
11
11
|
src/openstbench/emotion_evaluator.py
|
|
12
12
|
src/openstbench/language_policy.py
|
|
13
|
+
src/openstbench/metricx_evaluator.py
|
|
13
14
|
src/openstbench/paralinguistic_evaluator.py
|
|
14
15
|
src/openstbench/speaker_similarity_evaluator.py
|
|
15
16
|
src/openstbench/speech_quality_evaluator.py
|
|
@@ -20,7 +20,11 @@ jiwer
|
|
|
20
20
|
opencc-python-reimplemented
|
|
21
21
|
funasr
|
|
22
22
|
modelscope
|
|
23
|
-
transformers
|
|
23
|
+
transformers[torch]==4.30.2
|
|
24
|
+
sentencepiece==0.1.99
|
|
25
|
+
datasets==2.13.1
|
|
26
|
+
protobuf==3.20.3
|
|
27
|
+
accelerate>=0.26.0
|
|
24
28
|
|
|
25
29
|
[comet]
|
|
26
30
|
unbabel-comet>=2.2.2
|
|
@@ -29,6 +33,13 @@ unbabel-comet>=2.2.2
|
|
|
29
33
|
funasr
|
|
30
34
|
modelscope
|
|
31
35
|
|
|
36
|
+
[metricx]
|
|
37
|
+
transformers[torch]==4.30.2
|
|
38
|
+
sentencepiece==0.1.99
|
|
39
|
+
datasets==2.13.1
|
|
40
|
+
protobuf==3.20.3
|
|
41
|
+
accelerate>=0.26.0
|
|
42
|
+
|
|
32
43
|
[paralinguistics]
|
|
33
44
|
transformers
|
|
34
45
|
|