LICENSE
README.md
pyproject.toml
abstractvoice/__init__.py
abstractvoice/__main__.py
abstractvoice/_hf_compat.py
abstractvoice/_stdio.py
abstractvoice/_version.py
abstractvoice/artifacts.py
abstractvoice/compatibility.py
abstractvoice/dependency_check.py
abstractvoice/engine_runtime.py
abstractvoice/languages.py
abstractvoice/local_models.py
abstractvoice/prefetch.py
abstractvoice/quality_preset.py
abstractvoice/recognition.py
abstractvoice/speech_request.py
abstractvoice/stop_phrase.py
abstractvoice/text_sanitize.py
abstractvoice/transformers_floor.py
abstractvoice/voice_manager.py
abstractvoice/voice_profiles.py
abstractvoice.egg-info/PKG-INFO
abstractvoice.egg-info/SOURCES.txt
abstractvoice.egg-info/dependency_links.txt
abstractvoice.egg-info/entry_points.txt
abstractvoice.egg-info/requires.txt
abstractvoice.egg-info/top_level.txt
abstractvoice/adapters/__init__.py
abstractvoice/adapters/base.py
abstractvoice/adapters/openai_compatible_http.py
abstractvoice/adapters/stt_faster_whisper.py
abstractvoice/adapters/stt_mlx_whisper.py
abstractvoice/adapters/stt_openai_compatible.py
abstractvoice/adapters/stt_transformers_asr.py
abstractvoice/adapters/tts_audiodit.py
abstractvoice/adapters/tts_omnivoice.py
abstractvoice/adapters/tts_openai_compatible.py
abstractvoice/adapters/tts_piper.py
abstractvoice/adapters/tts_qwen3_tts.py
abstractvoice/adapters/tts_registry.py
abstractvoice/adapters/tts_supertonic.py
abstractvoice/aec/__init__.py
abstractvoice/aec/webrtc_apm.py
abstractvoice/assets/voice_model_capabilities.json
abstractvoice/assets/voice_profiles/omnivoice_profiles.json
abstractvoice/assets/voice_profiles/supertonic_profiles.json
abstractvoice/assets/voices/qwen3_tts/voices.json
abstractvoice/assets/voices/qwen3_tts/prompts/de-female-anna.npz
abstractvoice/assets/voices/qwen3_tts/prompts/de-female-greta.npz
abstractvoice/assets/voices/qwen3_tts/prompts/de-female-lena.npz
abstractvoice/assets/voices/qwen3_tts/prompts/de-female-sophie.npz
abstractvoice/assets/voices/qwen3_tts/prompts/de-female-ursula.npz
abstractvoice/assets/voices/qwen3_tts/prompts/de-male-dieter.npz
abstractvoice/assets/voices/qwen3_tts/prompts/de-male-horst.npz
abstractvoice/assets/voices/qwen3_tts/prompts/de-male-jonas.npz
abstractvoice/assets/voices/qwen3_tts/prompts/de-male-klaus.npz
abstractvoice/assets/voices/qwen3_tts/prompts/de-male-lukas.npz
abstractvoice/assets/voices/qwen3_tts/prompts/de-male-maximilian.npz
abstractvoice/assets/voices/qwen3_tts/prompts/de-male-wolfgang.npz
abstractvoice/assets/voices/qwen3_tts/prompts/en-gb-female-charlotte.npz
abstractvoice/assets/voices/qwen3_tts/prompts/en-gb-female-eleanor.npz
abstractvoice/assets/voices/qwen3_tts/prompts/en-gb-female-isla.npz
abstractvoice/assets/voices/qwen3_tts/prompts/en-gb-female-margaret.npz
abstractvoice/assets/voices/qwen3_tts/prompts/en-gb-female-olivia.npz
abstractvoice/assets/voices/qwen3_tts/prompts/en-gb-male-alistair.npz
abstractvoice/assets/voices/qwen3_tts/prompts/en-gb-male-edward.npz
abstractvoice/assets/voices/qwen3_tts/prompts/en-gb-male-graham.npz
abstractvoice/assets/voices/qwen3_tts/prompts/en-gb-male-harry.npz
abstractvoice/assets/voices/qwen3_tts/prompts/en-gb-male-liam.npz
abstractvoice/assets/voices/qwen3_tts/prompts/en-gb-male-oliver.npz
abstractvoice/assets/voices/qwen3_tts/prompts/en-gb-male-rupert.npz
abstractvoice/assets/voices/qwen3_tts/prompts/en-us-female-emily.npz
abstractvoice/assets/voices/qwen3_tts/prompts/en-us-female-grace.npz
abstractvoice/assets/voices/qwen3_tts/prompts/en-us-female-linda.npz
abstractvoice/assets/voices/qwen3_tts/prompts/en-us-female-madison.npz
abstractvoice/assets/voices/qwen3_tts/prompts/en-us-female-ruth.npz
abstractvoice/assets/voices/qwen3_tts/prompts/en-us-male-grant.npz
abstractvoice/assets/voices/qwen3_tts/prompts/en-us-male-harrison.npz
abstractvoice/assets/voices/qwen3_tts/prompts/en-us-male-jake.npz
abstractvoice/assets/voices/qwen3_tts/prompts/en-us-male-marcus.npz
abstractvoice/assets/voices/qwen3_tts/prompts/en-us-male-michael.npz
abstractvoice/assets/voices/qwen3_tts/prompts/en-us-male-wade.npz
abstractvoice/assets/voices/qwen3_tts/prompts/en-us-male-walter.npz
abstractvoice/assets/voices/qwen3_tts/prompts/es-female-carmen.npz
abstractvoice/assets/voices/qwen3_tts/prompts/es-female-elena.npz
abstractvoice/assets/voices/qwen3_tts/prompts/es-female-isabel.npz
abstractvoice/assets/voices/qwen3_tts/prompts/es-female-lucia.npz
abstractvoice/assets/voices/qwen3_tts/prompts/es-female-sofia.npz
abstractvoice/assets/voices/qwen3_tts/prompts/es-male-alfonso.npz
abstractvoice/assets/voices/qwen3_tts/prompts/es-male-antonio.npz
abstractvoice/assets/voices/qwen3_tts/prompts/es-male-diego.npz
abstractvoice/assets/voices/qwen3_tts/prompts/es-male-fernando.npz
abstractvoice/assets/voices/qwen3_tts/prompts/es-male-javier.npz
abstractvoice/assets/voices/qwen3_tts/prompts/es-male-pablo.npz
abstractvoice/assets/voices/qwen3_tts/prompts/es-male-ramon.npz
abstractvoice/assets/voices/qwen3_tts/prompts/fr-female-camille.npz
abstractvoice/assets/voices/qwen3_tts/prompts/fr-female-elise.npz
abstractvoice/assets/voices/qwen3_tts/prompts/fr-female-juliette.npz
abstractvoice/assets/voices/qwen3_tts/prompts/fr-female-lea.npz
abstractvoice/assets/voices/qwen3_tts/prompts/fr-female-margaux.npz
abstractvoice/assets/voices/qwen3_tts/prompts/fr-male-antoine.npz
abstractvoice/assets/voices/qwen3_tts/prompts/fr-male-bernard.npz
abstractvoice/assets/voices/qwen3_tts/prompts/fr-male-jean-pierre.npz
abstractvoice/assets/voices/qwen3_tts/prompts/fr-male-julien.npz
abstractvoice/assets/voices/qwen3_tts/prompts/fr-male-rene.npz
abstractvoice/assets/voices/qwen3_tts/prompts/fr-male-thomas.npz
abstractvoice/assets/voices/qwen3_tts/prompts/it-female-chiara.npz
abstractvoice/assets/voices/qwen3_tts/prompts/it-female-francesca.npz
abstractvoice/assets/voices/qwen3_tts/prompts/it-female-giulia.npz
abstractvoice/assets/voices/qwen3_tts/prompts/it-female-lucia.npz
abstractvoice/assets/voices/qwen3_tts/prompts/it-female-rosa.npz
abstractvoice/assets/voices/qwen3_tts/prompts/it-male-alessandro.npz
abstractvoice/assets/voices/qwen3_tts/prompts/it-male-enzo.npz
abstractvoice/assets/voices/qwen3_tts/prompts/it-male-giuseppe.npz
abstractvoice/assets/voices/qwen3_tts/prompts/it-male-luca.npz
abstractvoice/assets/voices/qwen3_tts/prompts/it-male-massimo.npz
abstractvoice/assets/voices/qwen3_tts/prompts/it-male-vittorio.npz
abstractvoice/audio/__init__.py
abstractvoice/audio/fade.py
abstractvoice/audio/recorder.py
abstractvoice/audio/resample.py
abstractvoice/audiodit/__init__.py
abstractvoice/audiodit/configuration_audiodit.py
abstractvoice/audiodit/modeling_audiodit.py
abstractvoice/audiodit/runtime.py
abstractvoice/cloning/__init__.py
abstractvoice/cloning/design.py
abstractvoice/cloning/engine_audiodit.py
abstractvoice/cloning/engine_chroma.py
abstractvoice/cloning/engine_f5.py
abstractvoice/cloning/engine_omnivoice.py
abstractvoice/cloning/engine_qwen3_tts.py
abstractvoice/cloning/engine_remote.py
abstractvoice/cloning/manager.py
abstractvoice/cloning/store.py
abstractvoice/compute/__init__.py
abstractvoice/compute/device.py
abstractvoice/compute/dtype.py
abstractvoice/compute/torch_runtime.py
abstractvoice/compute/windows_cuda.py
abstractvoice/config/__init__.py
abstractvoice/config/voice_catalog.py
abstractvoice/examples/__init__.py
abstractvoice/examples/cli_repl.py
abstractvoice/examples/llm_provider.py
abstractvoice/examples/tts_defaults.py
abstractvoice/examples/voice_cli.py
abstractvoice/examples/web_api.py
abstractvoice/examples/web_ui.py
abstractvoice/integrations/__init__.py
abstractvoice/integrations/abstractcore.py
abstractvoice/integrations/abstractcore_plugin.py
abstractvoice/omnivoice/__init__.py
abstractvoice/omnivoice/prompt_cache.py
abstractvoice/omnivoice/runtime.py
abstractvoice/qwen3_asr/__init__.py
abstractvoice/qwen3_asr/configuration_qwen3_asr.py
abstractvoice/qwen3_asr/modeling_qwen3_asr.py
abstractvoice/qwen3_asr/processing_qwen3_asr.py
abstractvoice/qwen3_tts/__init__.py
abstractvoice/qwen3_tts/_mel.py
abstractvoice/qwen3_tts/backend.py
abstractvoice/qwen3_tts/codec.py
abstractvoice/qwen3_tts/configuration_qwen3_tts.py
abstractvoice/qwen3_tts/configuration_qwen3_tts_tokenizer_v2.py
abstractvoice/qwen3_tts/modeling_qwen3_tts.py
abstractvoice/qwen3_tts/modeling_qwen3_tts_tokenizer_v2.py
abstractvoice/qwen3_tts/orchestration.py
abstractvoice/qwen3_tts/predictor.py
abstractvoice/qwen3_tts/processing_qwen3_tts.py
abstractvoice/qwen3_tts/runtime.py
abstractvoice/qwen3_tts/mlx/__init__.py
abstractvoice/qwen3_tts/mlx/_cache.py
abstractvoice/qwen3_tts/mlx/codec.py
abstractvoice/qwen3_tts/mlx/config.py
abstractvoice/qwen3_tts/mlx/model.py
abstractvoice/qwen3_tts/mlx/speaker_encoder.py
abstractvoice/qwen3_tts/mlx/talker.py
abstractvoice/qwen3_tts/mlx/tokenizer.py
abstractvoice/qwen3_tts/mlx/weights.py
abstractvoice/stt/__init__.py
abstractvoice/supertonic/__init__.py
abstractvoice/supertonic/runtime.py
abstractvoice/tts/__init__.py
abstractvoice/tts/adapter_tts_engine.py
abstractvoice/tts/audio_devices.py
abstractvoice/tts/delivery_mode.py
abstractvoice/tts/duration_estimator.py
abstractvoice/tts/language_id.py
abstractvoice/tts/text_chunking.py
abstractvoice/tts/text_to_speech_stream.py
abstractvoice/tts/time_stretch.py
abstractvoice/tts/tts_engine.py
abstractvoice/vad/__init__.py
abstractvoice/vad/voice_detector.py
abstractvoice/vad/webrtcvad_compat.py
abstractvoice/vm/__init__.py
abstractvoice/vm/common.py
abstractvoice/vm/core.py
abstractvoice/vm/manager.py
abstractvoice/vm/stt_mixin.py
abstractvoice/vm/tts_mixin.py
tests/test_abstractcore_plugin.py
tests/test_adr0002_phase1.py
tests/test_adr0002_phase2_optional_aec.py
tests/test_artifact_tools.py
tests/test_audio_fade.py
tests/test_audio_output_device_selection.py
tests/test_audio_player_continuity.py
tests/test_audio_player_resample.py
tests/test_audiodit_smoke_optional.py
tests/test_av_cap.py
tests/test_builtin_voice_pack.py
tests/test_builtin_voice_pack_e2e_optional.py
tests/test_callbacks.py
tests/test_chroma_cloning_integration.py
tests/test_cli_console_encoding.py
tests/test_cli_repl_tts_engine_switch.py
tests/test_cloned_tts_cancellation.py
tests/test_cloning_reference_text_autofallback.py
tests/test_cohere_transcribe_transformers_asr_discovery.py
tests/test_compatibility_catalog.py
tests/test_compute_dtype_policy.py
tests/test_compute_runtime_policy.py
tests/test_dependency_check.py
tests/test_duration_estimator.py
tests/test_engine_runtime.py
tests/test_faster_whisper_adapter.py
tests/test_fresh_install.py
tests/test_full_mode_echo_gate.py
tests/test_host_provider_credentials.py
tests/test_interactive_tts_defaults.py
tests/test_language_switching_robustness.py
tests/test_languages_and_voice_design.py
tests/test_lightweight_import_boundaries.py
tests/test_llm_think_strip.py
tests/test_local_models.py
tests/test_mlx_whisper_adapter.py
tests/test_omnivoice_prompt_cache.py
tests/test_omnivoice_smoke_optional.py
tests/test_open_tts_text_stream.py
tests/test_piper_adapter.py
tests/test_piper_download_cleanup.py
tests/test_piper_espeak_path_guard.py
tests/test_python39_annotations.py
tests/test_qwen3_asr_e2e_optional.py
tests/test_qwen3_asr_transformers5.py
tests/test_qwen3_asr_transformers_floor.py
tests/test_qwen3_tts_audio_edges.py
tests/test_qwen3_tts_backend_selection.py
tests/test_qwen3_tts_codebook_surfaces.py
tests/test_qwen3_tts_e2e_optional.py
tests/test_qwen3_tts_family_e2e_optional.py
tests/test_qwen3_tts_integration.py
tests/test_qwen3_tts_mlx_e2e_optional.py
tests/test_qwen3_tts_mlx_tokenizer.py
tests/test_qwen3_tts_one_shot.py
tests/test_qwen3_tts_predictor.py
tests/test_qwen3_tts_predictor_e2e_optional.py
tests/test_qwen3_tts_surfaces.py
tests/test_recognition_audio_level_callback.py
tests/test_recognition_lifecycle.py
tests/test_reference_text_autofallback_offline_cached_model.py
tests/test_remote_discovery_ttl.py
tests/test_remote_openai_compatible_adapters.py
tests/test_repl_interrupt_cloned_voice_does_not_resume_old_audio.py
tests/test_speech_request.py
tests/test_stop_phrase_continuous_detector.py
tests/test_stop_phrase_matching_is_tolerant.py
tests/test_stop_speaking_restores_recognizer_state.py
tests/test_stt_mixin_audio_level_forwarding.py
tests/test_supertonic_adapter.py
tests/test_text_chunking_streaming.py
tests/test_text_sanitize_markdown.py
tests/test_transformers_asr_pipeline_local_files_only.py
tests/test_transformers_asr_whisper_e2e_optional.py
tests/test_transformers_floor.py
tests/test_tts_delivery_mode_streaming.py
tests/test_tts_reply_language.py
tests/test_tts_sanitize_syntax_default.py
tests/test_tts_stream_first_segment.py
tests/test_tts_stream_silence.py
tests/test_voice_cli_one_shot_tts.py
tests/test_voice_clone_store_delete_rename.py
tests/test_voice_cloner_engine_dispatch.py
tests/test_voice_cloning_integration_hal9000.py
tests/test_voice_cloning_store.py
tests/test_voice_design_e2e_optional.py
tests/test_voice_discovery_budget.py
tests/test_voice_mode_wait_pauses_listening_during_tts.py
tests/test_voice_profiles_abstraction.py
tests/test_voice_recognizer_ptt_profile.py
tests/test_voice_switching.py
tests/test_web_ui.py
tests/test_whisper_gpu_device_selection.py
tests/test_windows_cuda_whisper_device.py
third_party_licenses/README.md
third_party_licenses/longcat_audiodit_license.txt
third_party_licenses/mlx_audio_notice.txt
third_party_licenses/omnivoice_notice.txt
third_party_licenses/qwen3_tts_notice.txt
third_party_licenses/qwen_asr_license.txt
third_party_licenses/supertone_supertonic_notice.txt