Skip to main content

voirs_singing/
lib.rs

1//! # VoiRS Singing Voice Synthesis System
2//!
3//! This crate provides comprehensive singing voice synthesis capabilities including
4//! musical note processing, pitch contour generation, rhythm control, vibrato modeling,
5//! and musical format support.
6
7//!
8//! ## Quick Start
9//!
10//! ```rust,ignore
11//! use voirs_singing::prelude::*;
12//!
13//! #[tokio::main]
14//! async fn main() -> Result<()> {
15//!     // Create a singing engine with default configuration
16//!     let config = SingingConfig::default();
17//!     let engine = SingingEngine::new(config).await?;
18//!     
19//!     // Create a simple musical score
20//!     let mut score = MusicalScore::new();
21//!     score.add_note(MusicalNote::new(60, 1.0, 1.0))?; // Middle C, 1 second
22//!     
23//!     // Synthesize the singing voice
24//!     let request = SingingRequest::new(score, VoiceType::Soprano);
25//!     let response = engine.synthesize(request).await?;
26//!     
27//!     println!("Generated {} samples", response.audio_data.len());
28//!     Ok(())
29//! }
30//! ```
31//!
32//! ## Core Components
33//!
34//! - **SingingEngine**: Main engine for voice synthesis
35//! - **MusicalScore**: Musical notation and timing
36//! - **VoiceCharacteristics**: Voice parameters and qualities
37//! - **EffectChain**: Audio effects processing
38//! - **SynthesisProcessor**: Core synthesis algorithms
39//!
40//! ## Advanced Features
41//!
42//! ### Voice Cloning and Style Transfer
43//! ```rust,ignore
44//! # use voirs_singing::prelude::*;
45//! # async fn example() -> Result<()> {
46//! let style_transfer = StyleTransfer::new();
47//! let target_style = StyleEmbedding::from_voice_samples(&voice_samples)?;
48//! let result = style_transfer.apply_style(&audio_input, &target_style).await?;
49//! # Ok(())
50//! # }
51//! ```
52//!
53//! ### Real-time Performance
54//! ```rust,ignore
55//! # use voirs_singing::prelude::*;
56//! # async fn example() -> Result<()> {
57//! let realtime_config = RealtimeConfig::low_latency();
58//! let session = LiveSession::new(realtime_config).await?;
59//!
60//! // Process notes in real-time
61//! let note = RealtimeNote::new(60, 0.5, VoiceType::Tenor);
62//! session.play_note(note).await?;
63//! # Ok(())
64//! # }
65//! ```
66//!
67//! ## Musical Intelligence
68//!
69//! The crate includes advanced musical analysis capabilities:
70//!
71//! - **Chord Recognition**: Automatic chord detection from audio
72//! - **Key Detection**: Musical key identification
73//! - **Rhythm Analysis**: Beat and tempo detection
74//! - **Scale Analysis**: Musical scale recognition
75
76// Allow pedantic lints that are acceptable for audio/DSP processing code
77#![allow(clippy::cast_precision_loss)] // Acceptable for audio sample conversions
78#![allow(clippy::cast_possible_truncation)] // Controlled truncation in audio processing
79#![allow(clippy::cast_sign_loss)] // Intentional in index calculations
80#![allow(clippy::missing_errors_doc)] // Many internal functions with self-documenting error types
81#![allow(clippy::missing_panics_doc)] // Panics are documented where relevant
82#![allow(clippy::unused_self)] // Some trait implementations require &self for consistency
83#![allow(clippy::must_use_candidate)] // Not all return values need must_use annotation
84#![allow(clippy::doc_markdown)] // Technical terms don't all need backticks
85#![allow(clippy::unnecessary_wraps)] // Result wrappers maintained for API consistency
86#![allow(clippy::float_cmp)] // Exact float comparisons are intentional in some contexts
87#![allow(clippy::match_same_arms)] // Pattern matching clarity sometimes requires duplication
88#![allow(clippy::module_name_repetitions)] // Type names often repeat module names
89#![allow(clippy::struct_excessive_bools)] // Config structs naturally have many boolean flags
90#![allow(clippy::too_many_lines)] // Some functions are inherently complex
91#![allow(clippy::needless_pass_by_value)] // Some functions designed for ownership transfer
92#![allow(clippy::similar_names)] // Many similar variable names in algorithms
93#![allow(clippy::unused_async)] // Public API functions may need async for consistency
94#![allow(clippy::needless_range_loop)] // Range loops sometimes clearer than iterators
95#![allow(clippy::uninlined_format_args)] // Explicit argument names can improve clarity
96#![allow(clippy::manual_clamp)] // Manual clamping sometimes clearer
97#![allow(clippy::return_self_not_must_use)] // Not all builder methods need must_use
98#![allow(clippy::cast_possible_wrap)] // Controlled wrapping in processing code
99#![allow(clippy::cast_lossless)] // Explicit casts preferred for clarity
100#![allow(clippy::wildcard_imports)] // Prelude imports are convenient and standard
101#![allow(clippy::format_push_string)] // Sometimes more readable than alternative
102#![allow(clippy::redundant_closure_for_method_calls)] // Closures sometimes needed for type inference
103#![deny(unsafe_code)]
104#![warn(missing_docs)]
105
106pub mod adaptive_learning;
107pub mod advanced_techniques;
108pub mod ai;
109pub mod audio_processing;
110/// Backend implementations for singing synthesis (ONNX, etc.).
111pub mod backends;
112/// Cloud deployment and distributed synthesis infrastructure
113pub mod cloud_deployment;
114/// AI-driven composition assistance for melody and harmony generation
115pub mod composition_assistant;
116pub mod config;
117pub mod core;
118pub mod custom_score;
119pub mod effects;
120/// Real-time emotion transfer for dynamic emotion manipulation
121pub mod emotion_transfer;
122pub mod formats;
123/// GPU acceleration for neural singing synthesis.
124pub mod gpu_acceleration;
125pub mod granular_synthesis;
126pub mod harmony;
127pub mod historical_practice;
128/// LLM-based musical understanding and semantic analysis
129pub mod llm_understanding;
130pub mod models;
131/// Multimodal singing synthesis with audio-visual synchronization
132pub mod multimodal;
133pub mod musical_intelligence;
134pub mod perceptual_quality;
135pub mod performance_optimization;
136/// Advanced performance optimization with Neural Architecture Search
137pub mod performance_optimization_advanced;
138pub mod physical_modeling;
139pub mod pitch;
140/// SIMD-optimized pitch processing for high-performance synthesis
141pub mod pitch_simd;
142pub mod precision_quality;
143pub mod realtime;
144/// State-of-the-art research models integration
145pub mod research_integration;
146pub mod rhythm;
147pub mod scalability;
148pub mod score;
149pub mod score_rendering;
150/// Advanced streaming synthesis with zero-copy pipeline (Phase 3)
151pub mod streaming;
152pub mod styles;
153pub mod synthesis;
154pub mod techniques;
155pub mod types;
156pub mod utils;
157pub mod vocal_effects;
158pub mod voice;
159pub mod voice_blending;
160pub mod voice_conversion;
161/// WebAssembly bindings for browser-based singing synthesis
162#[cfg(feature = "wasm-support")]
163pub mod wasm_support;
164pub mod zero_shot;
165
166// Re-export main types and traits
167pub use adaptive_learning::{
168    AdaptiveLearningConfig, AdaptiveLearningSystem, ArticulationParams, DynamicsParams,
169    LearningStatistics, ModelImprovement, PersonalizedRecommendations, QualityRatings,
170    QualityWeights, StyleAdaptation, UserFeedback, UserPreferences, VibratoParams,
171};
172pub use advanced_techniques::{
173    AdvancedArticulationProcessor, AdvancedDynamicsProcessor, AdvancedTechniques, BendCurve,
174    GraceNoteProcessor, MelismaProcessor, PitchBendProcessor, PitchBendSettings, RunPattern,
175    VocalRunProcessor, VocalRunSettings,
176};
177pub use ai::{
178    AutoHarmonizer, EmotionRecognizer, EmotionResult, ExpressionFeatures, HarmonyModel,
179    HarmonyRules, ImprovisationAssistant, StyleEmbedding, StyleMetadata, StyleTransfer,
180    StyleTransferConfig, StyleTransferResult, TransferQualityMetrics,
181};
182pub use audio_processing::{
183    DynamicRangeProcessor, HighQualityResampler, InterpolationMethod, PanLaw,
184    PhaseCoherenceProcessor, QualityLevel, StereoImagingProcessor,
185};
186pub use cloud_deployment::{
187    CloudConfig, CloudDeploymentManager, ClusterStats, JobStatus, LoadBalancingStrategy,
188    QualityTier, SynthesisJob, WorkerNode, WorkerStatus,
189};
190pub use composition_assistant::{
191    CompositionAssistant, CompositionConfig, GeneratedHarmony, GeneratedMelody, HarmonyRequest,
192    ImprovementSuggestion, MelodicAnalysis, MelodyPrompt, MusicalArrangement, RhythmPattern,
193    SuggestionType,
194};
195pub use config::{SingingConfig, SingingConfigBuilder};
196pub use core::{SingingEngine, SingingEngineBuilder};
197pub use custom_score::{OptimizedScore, PerformanceHints, ScoreOptimizer};
198pub use effects::{EffectChain, EffectProcessor, SingingEffect};
199pub use formats::{FormatParser, MidiParser, MusicXmlParser};
200pub use gpu_acceleration::{
201    DeviceType, GpuAccelerated, GpuAccelerator, GpuConfig, GpuConfigBuilder, GpuError, MemoryUsage,
202    TensorMemoryPool,
203};
204pub use granular_synthesis::{
205    GrainEnvelope, GranularConfig, GranularSynthesisEffect, GranularTexture, WindowFunction,
206};
207pub use harmony::{HarmonyArrangement, HarmonyType, MultiVoiceSynthesizer, VoicePart};
208pub use historical_practice::{
209    ArticulationStyle, ExpressionStyle, HistoricalPeriod, HistoricalPractice, OrnamentsEngine,
210    OrnamentsStyle, PeriodStyle, RegionalStyle, TuningSystem, VibratoStyle,
211};
212pub use llm_understanding::{
213    ArticulationRecommendation, DynamicSuggestion, InstructionInterpretation, LlmConfig,
214    LlmMusicalUnderstanding, LlmResponse, MusicalContext, MusicalPrompt, PhrasingBoundary,
215};
216pub use models::{
217    ModelType, SingingModel, SingingModelBuilder, TransformerConfig, TransformerSynthesisModel,
218    VoiceModel,
219};
220pub use multimodal::{
221    BlendShapeWeights, HeadMotion, MultimodalResult, MultimodalSynthesizer, PhonemeTiming,
222    SimpleNote, Viseme, VisualConfig, VisualFrame, VisualTimeline,
223};
224pub use musical_intelligence::{
225    ChordQuality, ChordRecognizer, ChordResult, KeyDetector, KeyMode, KeyResult, MusicalAnalysis,
226    MusicalIntelligence, RhythmAnalyzer, RhythmResult, ScaleAnalyzer, ScaleResult,
227};
228pub use perceptual_quality::{
229    ComprehensiveQualityReport, ExpressionReport, NaturalnessReport, PerceptualQualityTester,
230    PerformanceReport, VoiceQualityReport,
231};
232pub use performance_optimization::{
233    CompressionAlgorithm, CompressionEngine, EvictionPolicy, PrecomputationEngine, StreamingEngine,
234    StreamingQuality, VoiceCache,
235};
236pub use performance_optimization_advanced::{
237    ArchitectureCandidate, CompressedModel, DistillationConfig, DistillationResult,
238    EnergyEfficiencyConfig, EnergyEfficiencyOptimizer, EnergyOptimizationResult,
239    HardwareOptimizationResult, HardwareOptimizer, HardwareOptimizerConfig, HardwarePlatform,
240    KnowledgeDistiller, ModelCompressionConfig, ModelCompressor, NasConfig,
241    NeuralArchitectureSearcher, QatConfig, QatTrainingResult, QuantizationAwareTrainer,
242};
243pub use physical_modeling::{
244    AdvancedVocalTractModel, Complex32, PhysicalModelConfig, PhysicsAccuracyLevel, VocalTractModel,
245    VowelPreset,
246};
247pub use pitch::{PitchContour, PitchGenerator, PitchProcessor};
248pub use pitch_simd::{SimdPitchContourGenerator, SimdPitchProcessor};
249pub use precision_quality::{
250    ExpressionRecognitionReport, NaturalnessScoreReport, PitchAccuracyReport,
251    PrecisionQualityAnalyzer, TimingAccuracyReport,
252};
253pub use realtime::{LiveSession, RealtimeConfig, RealtimeEngine, RealtimeNote};
254pub use research_integration::{
255    ABTestManager,
256    AdvancedCodecConfig,
257    AdvancedNeuralCodec,
258    BatchingStrategy,
259    BottleneckDetector,
260    BottleneckReport,
261    BottleneckSeverity,
262    CacheStats,
263    CacheStrategy,
264    CircuitBreaker,
265    CircuitBreakerConfig,
266    CircuitBreakerStats,
267    CircuitState,
268    CodebookUsageStats,
269    CodecMetrics as Phase4CodecMetrics,
270    // Phase 3 models (baseline)
271    CodecStats,
272    CodecTokens,
273    ComponentHealth,
274    CompressionStats,
275    ConditioningType,
276    ConsistencyModel,
277    ConsistencyModelConfig,
278    CouplingMatrix,
279    DiffusionTransformer,
280    DiffusionTransformerConfig,
281    DiffusionTransformerInfo,
282    DistillationSchedule,
283    ExecutionTrace,
284    Experiment,
285    ExperimentMetrics,
286    ExperimentResults,
287    ExperimentStatus,
288    FallbackStrategy,
289    FieldInterpolation,
290    FlowMatchingConfig,
291    FlowMatchingObjective,
292    FlowMatchingSynthesizer,
293    GracefulDegradationManager,
294    HealthCheckThresholds,
295    HealthChecker,
296    HealthStatus,
297    HistogramStats,
298    HotReloader,
299    ImprovedRVQ,
300    InferenceConfig,
301    InferenceMetrics,
302    IntegrationMethod,
303    InterpolationMethod as VelocityInterpolationMethod,
304    LatencyOptimizer,
305    LatencyStats,
306    MetricMetadata,
307    MetricType,
308    MonitoringStats,
309    MultiScaleDiscriminator,
310    NeuralCodecConfig,
311    NeuralCodecLanguageModel,
312    NoiseSchedule,
313    OpenTelemetryTracer,
314    OptimalControl,
315    OptimalTransportConfig,
316    // Phase 4 advanced features
317    OptimalTransportFlow,
318    PerceptualLoss,
319    PerformanceProfiler,
320    PipelineStage,
321    PipelineStatistics,
322    PipelineVisualizer,
323    ProductionMonitor,
324    ProfileData,
325    ProfileSession,
326    ProfilingReport,
327    // Phase 5 production hardening (NEW)
328    PrometheusMetrics,
329    QualityLevel as DegradationQualityLevel,
330    RealtimeInferenceEngine,
331    RetryExecutor,
332    RetryPolicy,
333    SamplingMethod,
334    ScoreBasedConfig,
335    ScoreBasedModel,
336    Span,
337    SpanEvent,
338    SpanStatus,
339    StageMetrics,
340    StageType,
341    TrajectoryOptimization,
342    TransportMethod,
343    TransportPlan,
344    Variant,
345    VariantResult,
346    VelocityConfig,
347    VelocityEstimation,
348    VelocityFieldPredictor,
349    WassersteinDistance,
350};
351pub use rhythm::{RhythmGenerator, RhythmProcessor, TimingController};
352pub use scalability::{
353    LargeScaleSynthesisRequest, LargeScaleSynthesisResult, MultiVoiceCoordinator,
354    PerformanceMetrics, ScalabilityConfig, ScalabilityManager, ScalabilityStatus,
355    SessionRequirements, VoiceRequirements,
356};
357pub use score::{
358    KeySignature, Mode, MusicalNote, MusicalScore, Note, ScoreProcessor, TimeSignature,
359};
360pub use score_rendering::{
361    RenderConfig, RenderFormat, ScoreRenderer, ScoreRendererBuilder, StaffPosition,
362};
363pub use styles::{
364    CulturalVariant, MusicalStyle, Ornamentation, PerformanceGuidelines, PhraseShaping,
365    StyleCharacteristics, TimbreQualities, VoiceType as StyleVoiceType,
366};
367pub use synthesis::{
368    PrecisionMetricsReport, PrecisionTargets, SynthesisEngine, SynthesisProcessor, SynthesisResult,
369};
370pub use techniques::{
371    BreathControl, LegatoProcessor, SingingTechnique, VibratoProcessor, VocalFry,
372};
373pub use types::{
374    Expression, NoteEvent, QualitySettings, SingingRequest, SingingResponse, SingingStats,
375    VoiceCharacteristics, VoiceType,
376};
377pub use vocal_effects::{
378    AutoTuneEffect, ChoirEffect, HarmonyGenerator, ScaleType, VocoderEffect, VoiceArrangement,
379    VoicePartType, VoicingRules,
380};
381pub use voice::{VoiceBank, VoiceController, VoiceManager};
382pub use voice_blending::{BlendConfig, BlendState, VoiceBlender, VoiceMorphParams};
383pub use voice_conversion::{
384    ConversionMethod, ConversionQuality, ConversionQualityMetrics, ConversionRequest,
385    ConversionResult, ConversionSource, SpeakerEmbedding, VoiceConverter, VoiceQualityMetrics,
386};
387#[cfg(feature = "wasm-support")]
388pub use wasm_support::{
389    init_logging, WasmAudioPlayer, WasmError, WasmPerformanceMonitor, WasmRealtimeSynthesizer,
390    WasmSingingEngine,
391};
392pub use zero_shot::{
393    AdaptationMethod, AdaptationMetrics, AudioSample, QualityMode, ReferenceVoice, TargetVoiceSpec,
394    VocalRange, ZeroShotConfig, ZeroShotRequest, ZeroShotResult, ZeroShotSynthesizer,
395};
396
397/// Result type for singing operations
398pub type Result<T> = std::result::Result<T, Error>;
399
400/// Error types for singing synthesis
401#[derive(Debug, thiserror::Error)]
402pub enum Error {
403    /// Configuration error
404    #[error("Configuration error: {0}")]
405    Config(String),
406
407    /// Processing error
408    #[error("Processing error: {0}")]
409    Processing(String),
410
411    /// Model error
412    #[error("Model error: {0}")]
413    Model(String),
414
415    /// Audio error
416    #[error("Audio error: {0}")]
417    Audio(String),
418
419    /// Synthesis error
420    #[error("Synthesis error: {0}")]
421    Synthesis(String),
422
423    /// Score parsing error
424    #[error("Score parsing error: {0}")]
425    ScoreParsing(String),
426
427    /// Voice error
428    #[error("Voice error: {0}")]
429    Voice(String),
430
431    /// Effect processing error
432    #[error("Effect processing error: {0}")]
433    Effect(String),
434
435    /// Format error
436    #[error("Format error: {0}")]
437    Format(String),
438
439    /// Harmony error
440    #[error("Harmony error: {0}")]
441    Harmony(String),
442
443    /// Validation error
444    #[error("Validation error: {0}")]
445    Validation(String),
446
447    /// Unsupported feature error
448    #[error("Unsupported feature: {0}")]
449    UnsupportedFeature(String),
450
451    /// I/O error
452    #[error("I/O error: {0}")]
453    Io(#[from] std::io::Error),
454
455    /// Serialization error
456    #[error("Serialization error: {0}")]
457    Serialization(#[from] serde_json::Error),
458
459    /// Candle error
460    #[error("Candle error: {0}")]
461    Candle(#[from] candle_core::Error),
462
463    /// FFT error
464    #[error("FFT error: {0}")]
465    Fft(String),
466
467    /// MIDI error
468    #[error("MIDI error: {0}")]
469    #[cfg(feature = "midi-support")]
470    Midi(#[from] midly::Error),
471}
472
473/// Prelude module for convenient imports
474pub mod prelude {
475    pub use crate::{
476        adaptive_learning::{
477            AdaptiveLearningConfig, AdaptiveLearningSystem, LearningStatistics,
478            PersonalizedRecommendations, UserFeedback, UserPreferences,
479        },
480        ai::{
481            AutoHarmonizer, EmotionRecognizer, EmotionResult, ExpressionFeatures, HarmonyModel,
482            HarmonyRules, ImprovisationAssistant, StyleEmbedding, StyleMetadata, StyleTransfer,
483            StyleTransferConfig, StyleTransferResult, TransferQualityMetrics,
484        },
485        audio_processing::{
486            DynamicRangeProcessor, HighQualityResampler, InterpolationMethod, PanLaw,
487            PhaseCoherenceProcessor, QualityLevel, StereoImagingProcessor,
488        },
489        config::{SingingConfig, SingingConfigBuilder},
490        core::{SingingEngine, SingingEngineBuilder},
491        custom_score::{OptimizedScore, PerformanceHints, ScoreOptimizer},
492        effects::{EffectChain, EffectProcessor, SingingEffect},
493        formats::{FormatParser, MidiParser, MusicXmlParser},
494        granular_synthesis::{
495            GrainEnvelope, GranularConfig, GranularSynthesisEffect, GranularTexture, WindowFunction,
496        },
497        harmony::{HarmonyArrangement, HarmonyType, MultiVoiceSynthesizer, VoicePart},
498        models::{
499            ModelType, SingingModel, SingingModelBuilder, TransformerConfig,
500            TransformerSynthesisModel, VoiceModel,
501        },
502        multimodal::{
503            BlendShapeWeights, HeadMotion, MultimodalResult, MultimodalSynthesizer, PhonemeTiming,
504            SimpleNote, Viseme, VisualConfig, VisualFrame, VisualTimeline,
505        },
506        musical_intelligence::{
507            ChordQuality, ChordRecognizer, ChordResult, KeyDetector, KeyMode, KeyResult,
508            MusicalAnalysis, MusicalIntelligence, RhythmAnalyzer, RhythmResult, ScaleAnalyzer,
509            ScaleResult,
510        },
511        perceptual_quality::{
512            ComprehensiveQualityReport, ExpressionReport, NaturalnessReport,
513            PerceptualQualityTester, PerformanceReport, VoiceQualityReport,
514        },
515        performance_optimization::{
516            CompressionAlgorithm, CompressionEngine, EvictionPolicy, PrecomputationEngine,
517            StreamingEngine, StreamingQuality, VoiceCache,
518        },
519        performance_optimization_advanced::{
520            ModelCompressionConfig, ModelCompressor, NasConfig, NeuralArchitectureSearcher,
521        },
522        physical_modeling::{
523            AdvancedVocalTractModel, Complex32, PhysicalModelConfig, PhysicsAccuracyLevel,
524            VocalTractModel, VowelPreset,
525        },
526        pitch::{PitchContour, PitchGenerator, PitchProcessor},
527        realtime::{LiveSession, RealtimeConfig, RealtimeEngine, RealtimeNote},
528        research_integration::{
529            ConsistencyModel, DiffusionTransformer, FlowMatchingSynthesizer,
530            NeuralCodecLanguageModel, ScoreBasedModel,
531        },
532        rhythm::{RhythmGenerator, RhythmProcessor, TimingController},
533        scalability::{
534            LargeScaleSynthesisRequest, LargeScaleSynthesisResult, MultiVoiceCoordinator,
535            PerformanceMetrics, ScalabilityConfig, ScalabilityManager, ScalabilityStatus,
536            SessionRequirements, VoiceRequirements,
537        },
538        score::{MusicalNote, MusicalScore, ScoreProcessor},
539        styles::{
540            CulturalVariant, MusicalStyle, Ornamentation, PerformanceGuidelines, PhraseShaping,
541            StyleCharacteristics, TimbreQualities, VoiceType as StyleVoiceType,
542        },
543        synthesis::{SynthesisEngine, SynthesisProcessor, SynthesisResult},
544        techniques::{
545            BreathControl, LegatoProcessor, SingingTechnique, VibratoProcessor, VocalFry,
546        },
547        types::{
548            Expression, NoteEvent, SingingRequest, SingingResponse, SingingStats,
549            VoiceCharacteristics, VoiceType,
550        },
551        vocal_effects::{
552            AutoTuneEffect, ChoirEffect, HarmonyGenerator, ScaleType, VocoderEffect,
553            VoiceArrangement, VoicePartType, VoicingRules,
554        },
555        voice::{VoiceBank, VoiceController, VoiceManager},
556        voice_blending::{BlendConfig, BlendState, VoiceBlender, VoiceMorphParams},
557        voice_conversion::{
558            ConversionMethod, ConversionQuality, ConversionQualityMetrics, ConversionRequest,
559            ConversionResult, ConversionSource, SpeakerEmbedding, VoiceConverter,
560            VoiceQualityMetrics,
561        },
562        zero_shot::{
563            AdaptationMethod, AdaptationMetrics, AudioSample, QualityMode, ReferenceVoice,
564            TargetVoiceSpec, VocalRange, ZeroShotConfig, ZeroShotRequest, ZeroShotResult,
565            ZeroShotSynthesizer,
566        },
567        Error, Result,
568    };
569}