Crystal Speech

Crystal Speech operator properties for Script Engine. AI-powered noise removal for speech. Strips background noise — keyboard clatter, traffic, fan hum, room noise, crowd murmur — while preserving the voice. Useful for remote contributors on noisy connections, on-location interviews, podcasts recorded in untreated rooms, and any situation where the talker can't be put in a quiet environment. Use DryWetLevel to blend processed and original signal, and ByPass for instant A/B comparison.

Property Type Access Description
OperatorState OperatorState get Current operator state (read-only). Idle — model loaded, ready to process. Processing — actively cleaning audio. Stopped — manually stopped, audio passes through unchanged. ModelError — the noise-cancellation model failed to load (check the log for the file path the operator tried). RunError — a runtime failure occurred during processing. Useful from a script to react to state changes (e.g. send an alert if the state flips to RunError mid-show).
AutoStart bool get/set When true, the operator starts processing automatically once the project loads. [default=true]. The recommended setting for most projects — noise cancellation is on the moment the show begins. Disable to control activation manually (via StartCommand from a script or button), for example to enable cleanup only during certain segments.
StartCommand Command get Start the noise-cancellation engine. Switches OperatorState from Idle or Stopped to Processing.
StopCommand Command get Stop the noise-cancellation engine. The input audio passes through unchanged while stopped.
DryWetLevel float get/set Mix between the original audio (dry) and the noise-cancelled audio (wet), in percent. [min=0, max=100, default=85]. 0 outputs the original unchanged. 100 outputs only the cleaned signal. Mid values blend the two — useful when full denoising sounds too "processed", strips natural room ambience, or makes a voice feel disconnected from the scene. Uses an equal- power crossfade so perceived loudness stays roughly constant across the slider.
ByPass bool get/set When true, outputs the original audio unchanged — the cleaned signal is ignored. [default=false]. Quick A/B comparison toggle — turn on to hear the raw source, off to hear the cleaned result. The engine keeps running in the background either way, so the switch is instant and there's no glitch when toggling on air.
ResetCommand Command get Reset Dry/Wet level and Bypass to their defaults (85%, off).
AudioLatencyFrames int get Processing delay measured in audio frames (read-only). Reflects how many frames the engine buffers internally before output is available. To keep other audio paths time-aligned with the cleaned signal, apply a matching delay (using the Delay operator) on the parallel branches.
AudioLatencyTime int get Processing delay in milliseconds (read-only). Same delay as AudioLatencyFrames, expressed as time. Measured once on first startup and reused on subsequent stop/start cycles, so the value stays stable throughout a session.
MaxBufferSize int get Maximum number of samples the input buffer can hold before a resync is forced (read-only, debug). Compare against InBuffer to gauge how close the engine is to congestion.
InBuffer int get Current number of samples queued in the input buffer (read-only, debug). Should sit well below MaxBufferSize under normal load. Persistently rising values indicate the host can't keep up — expect a resync when it crosses the limit.
TotalResyncs int get Number of times the audio buffer has had to resync since processing started (read-only). A resync happens when the engine falls behind and the buffer overflows — typically caused by a load spike on the host or a debugger pause. The occasional resync is harmless; frequent ones indicate the host is overloaded — reduce other work on the machine or move the cleanup elsewhere. Useful from a script to alert when the count climbs unexpectedly.

Inherits from: AbstractAudioOperator, AbstractOperator, AbstractAudioMetering.

See also: Crystal Speech in Operators — user-facing introduction, screenshots, and section summaries.