#![deny(missing_docs)]
pub mod buffer;
pub mod capture;
pub mod device;
pub mod error;
pub mod playback;
pub mod stt;
pub mod tts;
pub mod types;
pub mod wav;
#[cfg(feature = "audio")]
pub mod hardware;
#[cfg(feature = "audio")]
pub mod api;
#[cfg(feature = "flac")]
pub mod flac;
#[cfg(feature = "local-stt")]
pub mod local;
pub mod vad;
#[cfg(any(
feature = "wake-word",
feature = "wake-word-rustpotter",
feature = "wake-word-porcupine"
))]
pub mod wake_word;
#[cfg(feature = "voice-assistant")]
pub mod assistant;
pub use buffer::AudioRingBuffer;
pub use capture::AudioCapture;
pub use device::{AudioDevice, DeviceDirection};
pub use error::{AudioError, AudioResult};
pub use playback::AudioPlayback;
pub use stt::SpeechToText;
pub use tts::TextToSpeech;
pub use types::{
AudioBuffer, AudioConfig, OutputFormat, SampleFormat, SttOptions, Transcript,
TranscriptSegment, TtsOptions, Voice,
};
pub use wav::{decode_wav, encode_wav};
#[cfg(feature = "audio")]
pub use api::{
AzureStt, AzureTts, CartesiaTts, DeepgramStt, DeepgramTts, ElevenLabsStt, ElevenLabsTts,
FishStt, FishTts, GoogleTts, MurfTts, OpenAiResponsesStt, OpenAiResponsesTts, OpenAiStt,
OpenAiTts,
};
#[cfg(feature = "flac")]
pub use flac::{decode_flac, encode_flac};
#[cfg(feature = "audio")]
pub use hardware::{CpalCapture, CpalPlayback};
#[cfg(feature = "local-stt")]
pub use local::WhisperStt;
pub use vad::{EnergyVad, SpeechSegment, VoiceActivityDetector};
#[cfg(feature = "vad")]
pub use vad::{VadMode, WebRtcVad};
#[cfg(feature = "wake-word-porcupine")]
pub use wake_word::PorcupineDetector;
#[cfg(feature = "wake-word-rustpotter")]
pub use wake_word::RustpotterDetector;
#[cfg(any(
feature = "wake-word",
feature = "wake-word-rustpotter",
feature = "wake-word-porcupine"
))]
pub use wake_word::{EnergyTriggerDetector, WakeWordDetection, WakeWordDetector};
#[cfg(feature = "voice-assistant")]
pub use assistant::{
AssistantState, VoiceAssistant, VoiceAssistantBuilder, VoiceAssistantConfig,
VoiceAssistantHandler,
};