summaryrefslogtreecommitdiff
path: root/makima/src/tts/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'makima/src/tts/mod.rs')
-rw-r--r--makima/src/tts/mod.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/makima/src/tts/mod.rs b/makima/src/tts/mod.rs
index 2cd0412..b66f4a5 100644
--- a/makima/src/tts/mod.rs
+++ b/makima/src/tts/mod.rs
@@ -5,6 +5,8 @@
//! - **Qwen3**: Pure Rust candle-based Qwen3-TTS-12Hz-0.6B
use std::path::Path;
+use std::sync::atomic::AtomicBool;
+use std::sync::Arc;
pub mod chatterbox;
pub mod qwen3;
@@ -109,11 +111,17 @@ pub enum TtsBackend {
#[async_trait::async_trait]
pub trait TtsEngine: Send + Sync {
/// Generate complete audio from text with a voice reference.
+ ///
+ /// The optional `cancel_flag` can be set to `true` by another thread/task
+ /// to request early termination of the generation loop. Engines that
+ /// support cancellation will check this flag periodically and return
+ /// whatever audio has been produced so far.
async fn generate(
&self,
text: &str,
reference_audio: Option<&[f32]>,
reference_sample_rate: Option<u32>,
+ cancel_flag: Option<Arc<AtomicBool>>,
) -> Result<Vec<AudioChunk>, TtsError>;
/// Check if the engine is loaded and ready.