Skip to main content

Intro

The Comparative Mean Opinion Score (CMOS) evaluation is designed to assess how a target audio compares to a reference audio. This evaluation is versatile and can be used for various comparison purposes:
  • Quality Comparison: “Is the target better or worse than the reference?”
  • Similarity/Fidelity: “How similar is the target to the reference?”
  • Multi-dimensional Assessment: Evaluate specific aspects like naturalness, clarity, or speaker similarity.
CMOS is particularly useful when you have a ground-truth or baseline audio and want to measure how your generated audio compares against it.
  • Objective: Compare target audio against a reference audio on various dimensions.
  • Use Case: TTS quality assessment, voice cloning fidelity, audio codec evaluation, speech enhancement validation.
  • Type: CMOS in the SDK.
Beta Feature: CMOS support is currently under development in the Workspace. Some features such as file management (add/edit/delete) may not be fully functional yet. Creating CMOS templates in the Workspace is also not supported at this time—use create_evaluator_from_template_json() with a JSON template instead.

Creating CMOS Evaluations

There are three ways to create CMOS evaluations:

Example: Using create_evaluator()

1

Initialize the Client

Begin by initializing the Podonos client with your API key.
2

Create the Evaluator

Set up the evaluator for a CMOS evaluation.
3

Add Files for Evaluation

Add one stimulus audio and one reference audio. The reference file must be specified with is_ref=True.
  • Stimulus: The generated or synthesized audio to evaluate (is_ref=False)
  • Reference: The ground-truth or original audio (is_ref=True)
You can compare multiple models against the same reference by using different model_tag values for each stimulus.
4

Finalize the Evaluation

Close the evaluator to complete the setup.

Example: Using create_evaluator_from_template()

Use a predefined template for standardized CMOS evaluations.

Example: Using create_evaluator_from_template_json()

Create custom CMOS-style evaluations with the SINGLE_REF custom type.

Full Example

Here is a complete example comparing multiple TTS models against the same reference recordings:
In this example, three different TTS models are evaluated against the same set of human reference recordings. The results will show the quality comparison for each model, allowing you to identify which model produces audio closest to the reference quality.

Key Considerations

For CMOS evaluation, one file must be marked as reference (is_ref=True) and one as stimulus (is_ref=False). Both files having the same is_ref value will cause an error.
  • File Configuration: Exactly two files are required - one reference and one stimulus.
  • Method Restriction: Use add_files() method, not add_file() which is only for single-stimulus evaluations.
  • Evaluation Logic: Evaluators will rate the quality difference between the stimulus and the reference audio.

custom_type Options

When using create_evaluator_from_template_json(), choose the appropriate custom_type based on your evaluation needs:

DOUBLE vs SINGLE_REF

Current Limitations

CMOS is currently in beta. The following limitations apply:
  • Workspace File Management: Adding, editing, or deleting files in the Workspace UI may not work as expected.
  • Workspace Template Creation: Creating CMOS templates directly in the Workspace is not supported. Use create_evaluator_from_template_json() with a JSON template to create custom CMOS evaluations.
These features are under active development and will be available in future updates.

Use Cases