Skip to main content
Quail models prepare speech for machine listening. Speech-to-text (STT) systems respond differently to noise, reverberation and competing speakers, so evaluate enhancement with the provider and audio your application uses. Quail’s multi-speaker models aim to retain speech from multiple participants. For a voice agent that should respond only to one primary speaker, start with Quail Voice Focus. Use the paired audio evaluation procedure to establish a baseline, then rerun the same recordings after each tuning change.

Working with real-world audio

Build a small evaluation set that includes clean speech, quiet speech, noise, reverberation, overlapping speakers and silence. Include the microphones, languages and telephony codecs you expect in production. Keep a transcript of the speech your application should recognize. Run the original and enhanced recordings through the same STT version and settings. Compare word error rate (WER), insertions and deletions rather than assuming that stronger suppression produces better transcripts. Keep clean speech in the evaluation so an improvement on noisy calls does not hide a regression elsewhere.

Tuning the enhancement_level

The SDK’s ProcessorParameter.EnhancementLevel accepts values from 0.0 to 1.0. Its behavior depends on the loaded model. Read the starting value from the processor context rather than assuming one default across all model families:
This fragment uses import aic_sdk as aic and the processor from the Python quickstart. Start your Quail comparison with the model default and 1.0, then test intermediate values if needed. 1.0 selects the strongest setting on the exposed parameter scale; it does not guarantee noise-free output or the lowest WER. For an unprocessed comparison, retain the original recording. The SDK’s bypass control preserves processing delay, so bypass timing and a direct raw-audio path are different baselines. See latency.

Best practices

  • Tune per STT provider. Hold the provider version and decoding settings fixed while changing one enhancement setting.
  • Track both insertions and deletions. Check background-speech insertions, quiet-speech deletions and word substitutions separately. Their response to tuning depends on your audio.
  • Preserve stream state. Process frames from one stream in order; do not reset between adjacent blocks. Reset at a discontinuity or use a new processor for a new call.
  • Measure the complete path. Report model delay, compute time and end-to-end response latency separately. Compare downstream agent behavior as well as transcripts.
See the performance guide for resource measurements and stream lifecycle guide for reset and concurrency rules.