OpenSTBench 1.2.3__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.
Files changed (27) hide show
  1. {openstbench-1.2.3/src/OpenSTBench.egg-info → openstbench-1.2.4}/PKG-INFO +58 -6
  2. {openstbench-1.2.3 → openstbench-1.2.4}/README.md +46 -4
  3. {openstbench-1.2.3 → openstbench-1.2.4}/pyproject.toml +22 -3
  4. {openstbench-1.2.3 → openstbench-1.2.4/src/OpenSTBench.egg-info}/PKG-INFO +58 -6
  5. {openstbench-1.2.3 → openstbench-1.2.4}/src/OpenSTBench.egg-info/SOURCES.txt +1 -0
  6. {openstbench-1.2.3 → openstbench-1.2.4}/src/OpenSTBench.egg-info/requires.txt +12 -1
  7. {openstbench-1.2.3 → openstbench-1.2.4}/src/openstbench/__init__.py +1 -1
  8. openstbench-1.2.4/src/openstbench/metricx_evaluator.py +390 -0
  9. {openstbench-1.2.3 → openstbench-1.2.4}/src/openstbench/speech_quality_evaluator.py +168 -168
  10. {openstbench-1.2.3 → openstbench-1.2.4}/src/openstbench/translation_evaluator.py +69 -3
  11. {openstbench-1.2.3 → openstbench-1.2.4}/LICENSE +0 -0
  12. {openstbench-1.2.3 → openstbench-1.2.4}/setup.cfg +0 -0
  13. {openstbench-1.2.3 → openstbench-1.2.4}/src/OpenSTBench.egg-info/dependency_links.txt +0 -0
  14. {openstbench-1.2.3 → openstbench-1.2.4}/src/OpenSTBench.egg-info/top_level.txt +0 -0
  15. {openstbench-1.2.3 → openstbench-1.2.4}/src/openstbench/_model_loading.py +0 -0
  16. {openstbench-1.2.3 → openstbench-1.2.4}/src/openstbench/emotion_evaluator.py +0 -0
  17. {openstbench-1.2.3 → openstbench-1.2.4}/src/openstbench/language_policy.py +0 -0
  18. {openstbench-1.2.3 → openstbench-1.2.4}/src/openstbench/latency/__init__.py +0 -0
  19. {openstbench-1.2.3 → openstbench-1.2.4}/src/openstbench/latency/agent.py +0 -0
  20. {openstbench-1.2.3 → openstbench-1.2.4}/src/openstbench/latency/basics.py +0 -0
  21. {openstbench-1.2.3 → openstbench-1.2.4}/src/openstbench/latency/cli.py +0 -0
  22. {openstbench-1.2.3 → openstbench-1.2.4}/src/openstbench/latency/instance.py +0 -0
  23. {openstbench-1.2.3 → openstbench-1.2.4}/src/openstbench/latency/metrics.py +0 -0
  24. {openstbench-1.2.3 → openstbench-1.2.4}/src/openstbench/latency/utils.py +0 -0
  25. {openstbench-1.2.3 → openstbench-1.2.4}/src/openstbench/paralinguistic_evaluator.py +0 -0
  26. {openstbench-1.2.3 → openstbench-1.2.4}/src/openstbench/speaker_similarity_evaluator.py +0 -0
  27. {openstbench-1.2.3 → 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
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
+ [![arXiv](https://img.shields.io/badge/arXiv-2605.30792-b31b1b?style=for-the-badge&logo=arxiv&logoColor=white)](https://arxiv.org/abs/2605.30792)
60
71
  [![PyPI](https://img.shields.io/pypi/v/OpenSTBench?style=for-the-badge&logo=pypi&logoColor=white)](https://pypi.org/project/OpenSTBench/)
61
72
  [![Python](https://img.shields.io/badge/Python-3.9--3.10-3776AB?style=for-the-badge&logo=python&logoColor=white)](https://www.python.org/downloads/)
62
73
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](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
+ ![OpenSTBench experimental radar overview](./radar.png)
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 will be released through [GitHub Releases](https://github.com/sjtuayj/OpenSTBench/releases); the source corpus is [LibriTTS](https://www.openslr.org/60/) |
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
+ [![arXiv](https://img.shields.io/badge/arXiv-2605.30792-b31b1b?style=for-the-badge&logo=arxiv&logoColor=white)](https://arxiv.org/abs/2605.30792)
5
6
  [![PyPI](https://img.shields.io/pypi/v/OpenSTBench?style=for-the-badge&logo=pypi&logoColor=white)](https://pypi.org/project/OpenSTBench/)
6
7
  [![Python](https://img.shields.io/badge/Python-3.9--3.10-3776AB?style=for-the-badge&logo=python&logoColor=white)](https://www.python.org/downloads/)
7
8
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](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
+ ![OpenSTBench experimental radar overview](./radar.png)
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 will be released through [GitHub Releases](https://github.com/sjtuayj/OpenSTBench/releases); the source corpus is [LibriTTS](https://www.openslr.org/60/) |
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.3"
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
- all = ["unbabel-comet>=2.2.2", "openai-whisper", "jiwer", "opencc-python-reimplemented", "funasr", "modelscope", "transformers"]
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
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
+ [![arXiv](https://img.shields.io/badge/arXiv-2605.30792-b31b1b?style=for-the-badge&logo=arxiv&logoColor=white)](https://arxiv.org/abs/2605.30792)
60
71
  [![PyPI](https://img.shields.io/pypi/v/OpenSTBench?style=for-the-badge&logo=pypi&logoColor=white)](https://pypi.org/project/OpenSTBench/)
61
72
  [![Python](https://img.shields.io/badge/Python-3.9--3.10-3776AB?style=for-the-badge&logo=python&logoColor=white)](https://www.python.org/downloads/)
62
73
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](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
+ ![OpenSTBench experimental radar overview](./radar.png)
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 will be released through [GitHub Releases](https://github.com/sjtuayj/OpenSTBench/releases); the source corpus is [LibriTTS](https://www.openslr.org/60/) |
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
 
@@ -9,7 +9,7 @@ actually accessed.
9
9
  from importlib import import_module
10
10
  from typing import Dict, Tuple
11
11
 
12
- __version__ = "1.2.3"
12
+ __version__ = "1.2.4"
13
13
 
14
14
  __all__ = [
15
15
  "TranslationEvaluator",