a11-kit 0.2.1__tar.gz → 0.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {a11_kit-0.2.1 → a11_kit-0.2.2}/PKG-INFO +1 -1
- a11_kit-0.2.2/VERSION +1 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/_native.pyi +610 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/cli/chat_ui.py +131 -5
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/cli/commands/chat.py +18 -1
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/cli/tests/test_chat_shell_tools.py +26 -1
- a11_kit-0.2.2/a11/cli/tests/test_chat_voice.py +101 -0
- a11_kit-0.2.2/a11/cli/voice.py +191 -0
- a11_kit-0.2.2/a11/sdk/audio/__init__.py +12 -0
- a11_kit-0.2.2/a11/sdk/audio/client.py +271 -0
- a11_kit-0.2.2/a11/sdk/audio/tests/test_audio.py +147 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/bash/prompt.py +5 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/ollama/interact_with_ollama.py +16 -3
- a11_kit-0.2.2/a11/sdk/ollama/tests/test_interact_with_ollama.py +226 -0
- a11_kit-0.2.2/a11/stores/__init__.py +0 -0
- a11_kit-0.2.2/a11/stores/tests/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/CMakeLists.txt +176 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/cmake/a11Config.cmake.in +30 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/python/CMakeLists.txt +4 -0
- a11_kit-0.2.2/cpp/python/audio_bindings.cc +498 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/python/bindings.h +3 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/python/interop.cc +26 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/python/interop.h +31 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/python/module.cc +4 -2
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/python/net_bindings.cc +0 -47
- a11_kit-0.2.2/cpp/sdk/audio/CMakeLists.txt +8 -0
- a11_kit-0.2.2/cpp/sdk/audio/audio_buffer.cc +18 -0
- a11_kit-0.2.2/cpp/sdk/audio/audio_buffer.h +52 -0
- a11_kit-0.2.2/cpp/sdk/audio/audio_input.cc +480 -0
- a11_kit-0.2.2/cpp/sdk/audio/audio_input.h +182 -0
- a11_kit-0.2.2/cpp/sdk/audio/device.cc +104 -0
- a11_kit-0.2.2/cpp/sdk/audio/device.h +60 -0
- a11_kit-0.2.2/cpp/sdk/audio/internal/audio_processing.cc +261 -0
- a11_kit-0.2.2/cpp/sdk/audio/internal/audio_processing.h +124 -0
- a11_kit-0.2.2/cpp/sdk/audio/internal/portaudio_session.cc +59 -0
- a11_kit-0.2.2/cpp/sdk/audio/internal/portaudio_session.h +47 -0
- a11_kit-0.2.2/cpp/sdk/audio/internal/sample_ring.h +116 -0
- a11_kit-0.2.2/cpp/sdk/audio/speech_recognizer.cc +621 -0
- a11_kit-0.2.2/cpp/sdk/audio/speech_recognizer.h +164 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/CMakeLists.txt +12 -0
- a11_kit-0.2.2/cpp/tests/audio_buffer_test.cc +46 -0
- a11_kit-0.2.2/cpp/tests/audio_input_test.cc +72 -0
- a11_kit-0.2.2/cpp/tests/audio_processing_test.cc +133 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/install_smoke/CMakeLists.txt +4 -0
- a11_kit-0.2.2/cpp/tests/install_smoke/smoke.cc +23 -0
- a11_kit-0.2.2/cpp/tests/sample_ring_test.cc +78 -0
- a11_kit-0.2.2/cpp/tests/speech_recognizer_test.cc +45 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/scripts/bootstrap_wheel_deps.sh +60 -1
- {a11_kit-0.2.1 → a11_kit-0.2.2}/scripts/generate_stubs.py +17 -0
- a11_kit-0.2.1/VERSION +0 -1
- a11_kit-0.2.1/cpp/tests/install_smoke/smoke.cc +0 -8
- {a11_kit-0.2.1 → a11_kit-0.2.2}/.clang-format +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/.clang-tidy +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/AGENTS.md +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/CMakeLists.txt +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/README.md +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/.gitignore +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/_asyncio.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/_native_options.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/_native_protocol.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/actions/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/actions/_native_action.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/actions/action.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/actions/registry.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/actions/tests/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/actions/tests/test_action.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/cli/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/cli/__main__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/cli/app.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/cli/backends.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/cli/commands/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/cli/tests/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/conftest.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/data/README.md +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/data/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/data/msgpack_utils.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/data/serialization.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/data/tests/test_serialization.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/data/types.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/demos/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/demos/echo_client_webrtc.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/demos/echo_server.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/demos/echo_server_webrtc.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/net/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/net/http2.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/net/http_sse_wire_stream.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/net/in_process_wire_stream.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/net/signalling.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/net/tests/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/net/tests/test_in_process_wire_stream.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/net/tests/test_native_network.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/net/tests/test_websocket_session_echo.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/net/tests/test_wire_stream_with_recv.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/net/webrtc_wire_stream.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/net/websocket_wire_stream.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/net/wire_stream.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/nodes/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/nodes/_native_async_node.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/nodes/async_node.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/nodes/tests/test_async_node.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/observability/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/observability/tests/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/observability/tests/test_observability.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/py.typed +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/redis/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/redis/client.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/redis/tests/test_client.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/anthropic/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/anthropic/client.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/anthropic/interact_with_claude.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/anthropic/interact_with_claude_schema.py +0 -0
- {a11_kit-0.2.1/a11/sdk/bash → a11_kit-0.2.2/a11/sdk/audio}/tests/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/bash/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/bash/handlers.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/bash/manager.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/bash/schemas.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/bash/shell.py +0 -0
- {a11_kit-0.2.1/a11/sdk/gemini → a11_kit-0.2.2/a11/sdk/bash/tests}/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/bash/tests/test_add_done_callback.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/bash/tests/test_manager.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/bash/tests/test_prompt.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/bash/tests/test_shell_integration.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/bash/tests/test_shell_with_llm.py +0 -0
- {a11_kit-0.2.1/a11/sdk/llm_tools → a11_kit-0.2.2/a11/sdk/gemini}/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/gemini/client.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/gemini/interact_with_gemini.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/gemini/interact_with_gemini_schema.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/interact_with_llm.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/interact_with_llm_schema.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/llm.py +0 -0
- {a11_kit-0.2.1/a11/sdk/llm_tools/tests → a11_kit-0.2.2/a11/sdk/llm_tools}/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/llm_tools/adapter.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/llm_tools/jsonschema_utils.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/llm_tools/runner.py +0 -0
- {a11_kit-0.2.1/a11/sdk → a11_kit-0.2.2/a11/sdk/llm_tools}/tests/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/llm_tools/tests/test_autofill_and_allowlist.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/ollama/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/ollama/client.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/ollama/interact_with_ollama_schema.py +0 -0
- {a11_kit-0.2.1/a11/service → a11_kit-0.2.2/a11/sdk/ollama/tests}/__init__.py +0 -0
- {a11_kit-0.2.1/a11/service → a11_kit-0.2.2/a11/sdk}/tests/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/sdk/tests/test_interact_with_llm.py +0 -0
- {a11_kit-0.2.1/a11/stores → a11_kit-0.2.2/a11/service}/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/service/_native_session.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/service/session.py +0 -0
- {a11_kit-0.2.1/a11/stores → a11_kit-0.2.2/a11/service}/tests/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/service/tests/test_session.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/status.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/stores/chunk_store.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/stores/chunk_store_reader.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/stores/chunk_store_writer.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/stores/local_chunk_store.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/stores/redis_chunk_store.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/stores/tests/test_chunk_store.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/stores/tests/test_chunk_store_reader.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/stores/tests/test_chunk_store_writer.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/stores/tests/test_redis_chunk_store.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/tests/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/tests/test_native_bindings.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/tests/test_typing_package.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/a11/timing.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/CMakeLists.txt +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/actions/CMakeLists.txt +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/actions/action.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/actions/action.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/actions/registry.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/actions/registry.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/actions/schema.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/actions/schema.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/concurrency/CMakeLists.txt +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/concurrency/callback_scheduler.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/concurrency/callback_scheduler.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/concurrency/executor.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/concurrency/executor.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/concurrency/future.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/data/CMakeLists.txt +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/data/json.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/data/json.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/data/msgpack.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/data/msgpack.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/data/serialization.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/data/serialization.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/data/types.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/data/types.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/CMakeLists.txt +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/byte_chunking.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/byte_chunking.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/channel_wire_stream.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/channel_wire_stream.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/http2.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/http2.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/http_sse_wire_stream.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/http_sse_wire_stream.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/in_process_wire_stream.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/in_process_wire_stream.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/internal/binary_channel.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/internal/http2_websocket_channel.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/internal/http2_websocket_channel.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/internal/multiplexed_binary_channel.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/internal/multiplexed_binary_channel.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/internal/rtc_binary_channel.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/signalling.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/signalling.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/webrtc_wire_stream.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/webrtc_wire_stream.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/websocket_signalling.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/websocket_signalling.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/websocket_wire_stream.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/websocket_wire_stream.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/wire_stream.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/wire_stream.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/wire_stream_with_recv.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/net/wire_stream_with_recv.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/nodes/CMakeLists.txt +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/nodes/async_node.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/nodes/async_node.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/nodes/node_map.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/nodes/node_map.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/obs/CMakeLists.txt +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/obs/internal/otel_internal.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/obs/internal/otlp_http_exporter.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/obs/internal/otlp_http_exporter.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/obs/provider.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/obs/provider.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/obs/span.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/obs/trace_context.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/obs/trace_context.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/obs/tracer.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/obs/tracer.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/service/CMakeLists.txt +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/service/session.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/service/session.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/status.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/status.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/stores/CMakeLists.txt +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/stores/chunk_store.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/stores/chunk_store_reader.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/stores/chunk_store_reader.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/stores/chunk_store_writer.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/stores/chunk_store_writer.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/stores/local_chunk_store.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/stores/local_chunk_store.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/stores/redis_chunk_store.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/stores/redis_chunk_store.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/stores/redis_chunk_store_script.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/time.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/a11/time.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/python/actions_bindings.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/python/casters.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/python/core_bindings.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/python/data_bindings.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/python/http_bindings.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/python/native_types.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/python/nodes_bindings.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/python/obs_bindings.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/python/redis_bindings.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/python/service_bindings.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/python/stores_bindings.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/python/webrtc_bindings.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/redis/CMakeLists.txt +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/redis/client.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/redis/client.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/redis/reply.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/redis/reply.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/action_test.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/async_node_test.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/byte_chunking_test.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/chunk_store_reader_test.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/chunk_store_writer_test.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/data_json_test.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/data_types_test.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/future_test.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/http2_test.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/http_sse_wire_stream_test.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/in_process_wire_stream_test.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/local_chunk_store_test.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/obs_action_span_test.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/obs_session_stream_test.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/obs_trace_context_test.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/obs_tracer_test.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/redis_chunk_store_test.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/redis_client_test.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/session_test.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/signalling_test.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/testdata/localhost-cert.pem +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/testdata/localhost-key.pem +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/webrtc_wire_stream_test.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/websocket_signalling_test.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/websocket_wire_stream_test.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/tests/wire_stream_with_recv_test.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/thread/CMakeLists.txt +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/thread/tests/thread_test.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/thread/thread/boost_primitives.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/thread/thread/boost_primitives.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/thread/thread/cases.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/thread/thread/channel/waiter_state.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/thread/thread/channel/waiter_state.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/thread/thread/channel.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/thread/thread/concurrency.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/thread/thread/executor.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/thread/thread/fiber.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/thread/thread/fiber.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/thread/thread/select.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/thread/thread/select.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/thread/thread/selectables.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/thread/thread/selectables.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/thread/thread/thread_pool.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/thread/thread/thread_pool.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/thread/thread/util.cc +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/cpp/thread/thread/util.h +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/pybind11_abseil/__init__.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/pyproject.toml +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/scripts/audit_wheel.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/scripts/build_wheels.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/scripts/check_release_version.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/scripts/freeze_hunt.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/scripts/patches/boost-fiber-macos-futex.md +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/scripts/patches/boost-fiber-macos-futex.patch +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/scripts/serialization.py +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/scripts/smoke_cmake_install.sh +0 -0
- {a11_kit-0.2.1 → a11_kit-0.2.2}/uv.lock +0 -0
a11_kit-0.2.2/VERSION
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.2.2
|
|
@@ -11,6 +11,7 @@ import httpx
|
|
|
11
11
|
import collections.abc
|
|
12
12
|
import msgpack._cmsgpack
|
|
13
13
|
import typing
|
|
14
|
+
import os
|
|
14
15
|
|
|
15
16
|
T = typing.TypeVar("T")
|
|
16
17
|
|
|
@@ -18,6 +19,12 @@ class _DoneEvent(typing.Protocol):
|
|
|
18
19
|
def is_set(self) -> bool: ...
|
|
19
20
|
async def wait(self) -> bool: ...
|
|
20
21
|
|
|
22
|
+
OnTranscription = collections.abc.Callable[
|
|
23
|
+
[str | None], collections.abc.Awaitable[None]
|
|
24
|
+
]
|
|
25
|
+
OnRecognitionDone = collections.abc.Callable[
|
|
26
|
+
[], collections.abc.Awaitable[None]
|
|
27
|
+
]
|
|
21
28
|
__all__: list[str] = [
|
|
22
29
|
"ACCEPT",
|
|
23
30
|
"ACTION_DISPATCH_STATUS_OUTPUT",
|
|
@@ -32,6 +39,11 @@ __all__: list[str] = [
|
|
|
32
39
|
"ActionSchema",
|
|
33
40
|
"ActionSettings",
|
|
34
41
|
"AsyncNode",
|
|
42
|
+
"AudioBuffer",
|
|
43
|
+
"AudioDeviceInfo",
|
|
44
|
+
"AudioInput",
|
|
45
|
+
"AudioInputOptions",
|
|
46
|
+
"AudioSubscription",
|
|
35
47
|
"CANCEL_ACTION_HEADER",
|
|
36
48
|
"CANCEL_ACTION_NAME",
|
|
37
49
|
"CANDIDATE",
|
|
@@ -102,6 +114,8 @@ __all__: list[str] = [
|
|
|
102
114
|
"SignallingMessageType",
|
|
103
115
|
"SignallingService",
|
|
104
116
|
"SignallingTransport",
|
|
117
|
+
"SpeechRecognizer",
|
|
118
|
+
"SpeechRecognizerOptions",
|
|
105
119
|
"Status",
|
|
106
120
|
"StreamMode",
|
|
107
121
|
"TCP",
|
|
@@ -129,11 +143,14 @@ __all__: list[str] = [
|
|
|
129
143
|
"WireStream",
|
|
130
144
|
"WireStreamOptions",
|
|
131
145
|
"WireStreamWithRecv",
|
|
146
|
+
"audio_device_info",
|
|
132
147
|
"create_in_process_wire_stream_pair",
|
|
148
|
+
"default_audio_input_device",
|
|
133
149
|
"default_redis_client",
|
|
134
150
|
"get_http_header",
|
|
135
151
|
"is_half_close_message",
|
|
136
152
|
"is_status_chunk",
|
|
153
|
+
"list_audio_devices",
|
|
137
154
|
"make_half_close_message",
|
|
138
155
|
"normalize_session_headers",
|
|
139
156
|
"obs_clear_recorded_spans",
|
|
@@ -1559,6 +1576,318 @@ class AsyncNode:
|
|
|
1559
1576
|
@writer_options.setter
|
|
1560
1577
|
def writer_options(self, arg1: ChunkStoreWriterOptions) -> None: ...
|
|
1561
1578
|
|
|
1579
|
+
class AudioBuffer:
|
|
1580
|
+
"""
|
|
1581
|
+
A captured block of samples stored channel-major (planar). Use `memoryview(buffer)` for a zero-copy (channels x frames) float view, or `channel(i)` for one channel.
|
|
1582
|
+
"""
|
|
1583
|
+
|
|
1584
|
+
def __buffer__(self, flags):
|
|
1585
|
+
"""
|
|
1586
|
+
Return a buffer object that exposes the underlying memory of the object.
|
|
1587
|
+
"""
|
|
1588
|
+
|
|
1589
|
+
def __release_buffer__(self, buffer):
|
|
1590
|
+
"""
|
|
1591
|
+
Release the buffer object that exposes the underlying memory of the object.
|
|
1592
|
+
"""
|
|
1593
|
+
|
|
1594
|
+
def channel(self, index: int) -> memoryview:
|
|
1595
|
+
"""
|
|
1596
|
+
Return a zero-copy read-only view of one channel's samples.
|
|
1597
|
+
"""
|
|
1598
|
+
|
|
1599
|
+
@property
|
|
1600
|
+
def end_time(self) -> typing.Any:
|
|
1601
|
+
"""
|
|
1602
|
+
Best-effort instant the final sample in this buffer was taken.
|
|
1603
|
+
"""
|
|
1604
|
+
|
|
1605
|
+
@property
|
|
1606
|
+
def num_channels(self) -> int:
|
|
1607
|
+
"""
|
|
1608
|
+
Number of channels in this buffer.
|
|
1609
|
+
"""
|
|
1610
|
+
|
|
1611
|
+
@property
|
|
1612
|
+
def num_frames(self) -> int:
|
|
1613
|
+
"""
|
|
1614
|
+
Number of samples per channel in this buffer.
|
|
1615
|
+
"""
|
|
1616
|
+
|
|
1617
|
+
@property
|
|
1618
|
+
def sample_rate(self) -> float:
|
|
1619
|
+
"""
|
|
1620
|
+
Sample rate, in hertz, the samples were captured at.
|
|
1621
|
+
"""
|
|
1622
|
+
|
|
1623
|
+
@property
|
|
1624
|
+
def samples(self) -> memoryview:
|
|
1625
|
+
"""
|
|
1626
|
+
A zero-copy read-only ``(channels, frames)`` float view.
|
|
1627
|
+
"""
|
|
1628
|
+
|
|
1629
|
+
class AudioDeviceInfo:
|
|
1630
|
+
"""
|
|
1631
|
+
Static metadata describing one host audio device.
|
|
1632
|
+
"""
|
|
1633
|
+
|
|
1634
|
+
def __repr__(self) -> str: ...
|
|
1635
|
+
@property
|
|
1636
|
+
def default_high_input_latency(self) -> typing.Any:
|
|
1637
|
+
"""
|
|
1638
|
+
Suggested latency for robust, buffered input use.
|
|
1639
|
+
"""
|
|
1640
|
+
|
|
1641
|
+
@property
|
|
1642
|
+
def default_low_input_latency(self) -> typing.Any:
|
|
1643
|
+
"""
|
|
1644
|
+
Suggested latency for interactive input use.
|
|
1645
|
+
"""
|
|
1646
|
+
|
|
1647
|
+
@property
|
|
1648
|
+
def default_sample_rate(self) -> float:
|
|
1649
|
+
"""
|
|
1650
|
+
Default sample rate in hertz.
|
|
1651
|
+
"""
|
|
1652
|
+
|
|
1653
|
+
@property
|
|
1654
|
+
def host_api(self) -> str:
|
|
1655
|
+
"""
|
|
1656
|
+
Host API backing the device (e.g. Core Audio, ALSA).
|
|
1657
|
+
"""
|
|
1658
|
+
|
|
1659
|
+
@property
|
|
1660
|
+
def index(self) -> int:
|
|
1661
|
+
"""
|
|
1662
|
+
PortAudio device index, stable within a process run.
|
|
1663
|
+
"""
|
|
1664
|
+
|
|
1665
|
+
@property
|
|
1666
|
+
def is_default_input(self) -> bool:
|
|
1667
|
+
"""
|
|
1668
|
+
Whether this is the host default input device.
|
|
1669
|
+
"""
|
|
1670
|
+
|
|
1671
|
+
@property
|
|
1672
|
+
def is_default_output(self) -> bool:
|
|
1673
|
+
"""
|
|
1674
|
+
Whether this is the host default output device.
|
|
1675
|
+
"""
|
|
1676
|
+
|
|
1677
|
+
@property
|
|
1678
|
+
def max_input_channels(self) -> int:
|
|
1679
|
+
"""
|
|
1680
|
+
Maximum capture channels the device offers.
|
|
1681
|
+
"""
|
|
1682
|
+
|
|
1683
|
+
@property
|
|
1684
|
+
def max_output_channels(self) -> int:
|
|
1685
|
+
"""
|
|
1686
|
+
Maximum playback channels the device offers.
|
|
1687
|
+
"""
|
|
1688
|
+
|
|
1689
|
+
@property
|
|
1690
|
+
def name(self) -> str:
|
|
1691
|
+
"""
|
|
1692
|
+
Human-readable name.
|
|
1693
|
+
"""
|
|
1694
|
+
|
|
1695
|
+
class AudioInput:
|
|
1696
|
+
"""
|
|
1697
|
+
A capturable input device that samples continuously while at least one subscription is alive.
|
|
1698
|
+
"""
|
|
1699
|
+
|
|
1700
|
+
@staticmethod
|
|
1701
|
+
def open(
|
|
1702
|
+
options: (
|
|
1703
|
+
AudioInputOptions | collections.abc.Mapping[str, typing.Any] | None
|
|
1704
|
+
) = None,
|
|
1705
|
+
) -> AudioInput:
|
|
1706
|
+
"""
|
|
1707
|
+
Resolve the device and validate options without starting capture.
|
|
1708
|
+
"""
|
|
1709
|
+
|
|
1710
|
+
def __init__(
|
|
1711
|
+
self,
|
|
1712
|
+
options: (
|
|
1713
|
+
AudioInputOptions | collections.abc.Mapping[str, typing.Any] | None
|
|
1714
|
+
) = None,
|
|
1715
|
+
) -> None:
|
|
1716
|
+
"""
|
|
1717
|
+
Resolve the device and validate options without starting capture.
|
|
1718
|
+
|
|
1719
|
+
A plain mapping is validated into the same bound options object used by
|
|
1720
|
+
C++, rather than creating a second Python configuration model.
|
|
1721
|
+
"""
|
|
1722
|
+
|
|
1723
|
+
def subscribe(self, buffer_size: int) -> AudioSubscription:
|
|
1724
|
+
"""
|
|
1725
|
+
Begin receiving buffers of ``buffer_size`` frames per channel.
|
|
1726
|
+
|
|
1727
|
+
Capture starts when the first subscription is created and stops when
|
|
1728
|
+
the last one is closed.
|
|
1729
|
+
"""
|
|
1730
|
+
|
|
1731
|
+
@property
|
|
1732
|
+
def capturing(self) -> bool:
|
|
1733
|
+
"""
|
|
1734
|
+
Whether a capture stream is currently open.
|
|
1735
|
+
"""
|
|
1736
|
+
|
|
1737
|
+
@property
|
|
1738
|
+
def channels(self) -> int:
|
|
1739
|
+
"""
|
|
1740
|
+
Number of channels every subscription receives.
|
|
1741
|
+
"""
|
|
1742
|
+
|
|
1743
|
+
@property
|
|
1744
|
+
def device(self) -> AudioDeviceInfo:
|
|
1745
|
+
"""
|
|
1746
|
+
The captured device's metadata.
|
|
1747
|
+
"""
|
|
1748
|
+
|
|
1749
|
+
@property
|
|
1750
|
+
def device_index(self) -> int:
|
|
1751
|
+
"""
|
|
1752
|
+
The captured device's index.
|
|
1753
|
+
"""
|
|
1754
|
+
|
|
1755
|
+
@property
|
|
1756
|
+
def name(self) -> str:
|
|
1757
|
+
"""
|
|
1758
|
+
The captured device's name.
|
|
1759
|
+
"""
|
|
1760
|
+
|
|
1761
|
+
@property
|
|
1762
|
+
def sample_rate(self) -> float:
|
|
1763
|
+
"""
|
|
1764
|
+
Sample rate, in hertz, capture runs at.
|
|
1765
|
+
"""
|
|
1766
|
+
|
|
1767
|
+
class AudioInputOptions:
|
|
1768
|
+
"""
|
|
1769
|
+
How an AudioInput opens its capture stream.
|
|
1770
|
+
"""
|
|
1771
|
+
|
|
1772
|
+
__hash__: None = None # pyright: ignore[reportIncompatibleMethodOverride]
|
|
1773
|
+
_a11_options_installed: typing.ClassVar[bool] = True
|
|
1774
|
+
@staticmethod
|
|
1775
|
+
def __get_pydantic_core_schema__(option_cls, _source_type, _handler): ...
|
|
1776
|
+
@staticmethod
|
|
1777
|
+
def __get_pydantic_json_schema__(option_cls, _schema, _handler): ...
|
|
1778
|
+
@staticmethod
|
|
1779
|
+
def model_json_schema(
|
|
1780
|
+
option_cls, **_: typing.Any
|
|
1781
|
+
) -> dict[str, typing.Any]: ...
|
|
1782
|
+
@staticmethod
|
|
1783
|
+
def model_validate(option_cls, value: typing.Any, **_: typing.Any): ...
|
|
1784
|
+
def __copy__(self): ...
|
|
1785
|
+
def __deepcopy__(self, _memo): ...
|
|
1786
|
+
def __eq__(self, other: object) -> bool: ...
|
|
1787
|
+
def __init__(
|
|
1788
|
+
self,
|
|
1789
|
+
device_index: typing.SupportsInt = -1,
|
|
1790
|
+
sample_rate: typing.SupportsFloat = 0.0,
|
|
1791
|
+
channels: typing.SupportsInt = 0,
|
|
1792
|
+
block_frames: typing.SupportsInt = 256,
|
|
1793
|
+
ring_blocks: typing.SupportsInt = 32,
|
|
1794
|
+
) -> None:
|
|
1795
|
+
"""
|
|
1796
|
+
Construct validated audio input options.
|
|
1797
|
+
"""
|
|
1798
|
+
|
|
1799
|
+
def __repr__(self) -> str: ...
|
|
1800
|
+
def model_copy(
|
|
1801
|
+
self,
|
|
1802
|
+
*,
|
|
1803
|
+
update: collections.abc.Mapping[str, typing.Any] | None = None,
|
|
1804
|
+
deep: bool = False,
|
|
1805
|
+
): ...
|
|
1806
|
+
def model_dump(self, **_: typing.Any) -> dict[str, typing.Any]: ...
|
|
1807
|
+
|
|
1808
|
+
@property
|
|
1809
|
+
def block_frames(self) -> int:
|
|
1810
|
+
"""
|
|
1811
|
+
Frames per PortAudio callback block.
|
|
1812
|
+
"""
|
|
1813
|
+
@block_frames.setter
|
|
1814
|
+
def block_frames(self, arg0: typing.SupportsInt) -> None: ...
|
|
1815
|
+
|
|
1816
|
+
@property
|
|
1817
|
+
def channels(self) -> int:
|
|
1818
|
+
"""
|
|
1819
|
+
Requested channel count, or 0 for the device's count.
|
|
1820
|
+
"""
|
|
1821
|
+
@channels.setter
|
|
1822
|
+
def channels(self, arg0: typing.SupportsInt) -> None: ...
|
|
1823
|
+
|
|
1824
|
+
@property
|
|
1825
|
+
def device_index(self) -> int:
|
|
1826
|
+
"""
|
|
1827
|
+
Device index to capture from, or negative for default.
|
|
1828
|
+
"""
|
|
1829
|
+
@device_index.setter
|
|
1830
|
+
def device_index(self, arg0: typing.SupportsInt) -> None: ...
|
|
1831
|
+
|
|
1832
|
+
@property
|
|
1833
|
+
def ring_blocks(self) -> int:
|
|
1834
|
+
"""
|
|
1835
|
+
Depth of the internal callback-to-fiber ring, in blocks.
|
|
1836
|
+
"""
|
|
1837
|
+
@ring_blocks.setter
|
|
1838
|
+
def ring_blocks(self, arg0: typing.SupportsInt) -> None: ...
|
|
1839
|
+
|
|
1840
|
+
@property
|
|
1841
|
+
def sample_rate(self) -> float:
|
|
1842
|
+
"""
|
|
1843
|
+
Requested sample rate in hertz, or 0 for the default.
|
|
1844
|
+
"""
|
|
1845
|
+
@sample_rate.setter
|
|
1846
|
+
def sample_rate(self, arg0: typing.SupportsFloat) -> None: ...
|
|
1847
|
+
|
|
1848
|
+
class AudioSubscription:
|
|
1849
|
+
"""
|
|
1850
|
+
A live subscription delivering fixed-size buffers from an AudioInput.
|
|
1851
|
+
"""
|
|
1852
|
+
|
|
1853
|
+
async def __aenter__(self) -> typing.Self: ...
|
|
1854
|
+
async def __aexit__(self, exc_type, exc, traceback) -> None: ...
|
|
1855
|
+
def __aiter__(self) -> typing.Self: ...
|
|
1856
|
+
async def __anext__(self) -> AudioBuffer: ...
|
|
1857
|
+
def close(self) -> None:
|
|
1858
|
+
"""
|
|
1859
|
+
Stop delivering; stops capture if this was the last subscription.
|
|
1860
|
+
"""
|
|
1861
|
+
|
|
1862
|
+
async def read(self) -> AudioBuffer:
|
|
1863
|
+
"""
|
|
1864
|
+
Await the next captured buffer for this subscription.
|
|
1865
|
+
"""
|
|
1866
|
+
|
|
1867
|
+
@property
|
|
1868
|
+
def buffer_size(self) -> int:
|
|
1869
|
+
"""
|
|
1870
|
+
Frames per channel in every delivered buffer.
|
|
1871
|
+
"""
|
|
1872
|
+
|
|
1873
|
+
@property
|
|
1874
|
+
def channels(self) -> int:
|
|
1875
|
+
"""
|
|
1876
|
+
Number of channels in every delivered buffer.
|
|
1877
|
+
"""
|
|
1878
|
+
|
|
1879
|
+
@property
|
|
1880
|
+
def dropped(self) -> int:
|
|
1881
|
+
"""
|
|
1882
|
+
Buffers dropped because this subscription fell behind.
|
|
1883
|
+
"""
|
|
1884
|
+
|
|
1885
|
+
@property
|
|
1886
|
+
def sample_rate(self) -> float:
|
|
1887
|
+
"""
|
|
1888
|
+
Sample rate, in hertz, of every delivered buffer.
|
|
1889
|
+
"""
|
|
1890
|
+
|
|
1562
1891
|
class ChannelFramingOptions:
|
|
1563
1892
|
def __init__(self) -> None:
|
|
1564
1893
|
"""
|
|
@@ -4822,6 +5151,272 @@ class SignallingTransport:
|
|
|
4822
5151
|
Register an async callback invoked for each inbound message.
|
|
4823
5152
|
"""
|
|
4824
5153
|
|
|
5154
|
+
class SpeechRecognizer:
|
|
5155
|
+
"""
|
|
5156
|
+
Restartable local automatic speech recognizer backed by whisper.cpp. It invokes inference only for speech endpointed by its adaptive VAD.
|
|
5157
|
+
"""
|
|
5158
|
+
|
|
5159
|
+
@staticmethod
|
|
5160
|
+
def create(
|
|
5161
|
+
model_path: str | os.PathLike[str],
|
|
5162
|
+
source: AudioInput | AudioSubscription | None = None,
|
|
5163
|
+
options: (
|
|
5164
|
+
SpeechRecognizerOptions
|
|
5165
|
+
| collections.abc.Mapping[str, typing.Any]
|
|
5166
|
+
| None
|
|
5167
|
+
) = None,
|
|
5168
|
+
) -> SpeechRecognizer:
|
|
5169
|
+
"""
|
|
5170
|
+
Load a model and construct a recognizer.
|
|
5171
|
+
"""
|
|
5172
|
+
|
|
5173
|
+
def __init__(
|
|
5174
|
+
self,
|
|
5175
|
+
model_path: str | os.PathLike[str],
|
|
5176
|
+
source: AudioInput | AudioSubscription | None = None,
|
|
5177
|
+
options: (
|
|
5178
|
+
SpeechRecognizerOptions
|
|
5179
|
+
| collections.abc.Mapping[str, typing.Any]
|
|
5180
|
+
| None
|
|
5181
|
+
) = None,
|
|
5182
|
+
) -> None:
|
|
5183
|
+
"""
|
|
5184
|
+
Load a whisper.cpp GGML/GGUF model for local recognition.
|
|
5185
|
+
|
|
5186
|
+
Pass an :class:`AudioInput` to create a fresh subscription per run, an
|
|
5187
|
+
:class:`AudioSubscription` to consume that subscription once, or
|
|
5188
|
+
``None`` to use the system default input. Loading happens once, so the
|
|
5189
|
+
same recognizer can be paused while an agent responds and restarted for
|
|
5190
|
+
the next user turn without reloading model weights.
|
|
5191
|
+
"""
|
|
5192
|
+
|
|
5193
|
+
def get_status(self) -> typing.Any:
|
|
5194
|
+
"""
|
|
5195
|
+
Return the current or final recognition status.
|
|
5196
|
+
"""
|
|
5197
|
+
|
|
5198
|
+
async def start(
|
|
5199
|
+
self, on_transcription: OnTranscription, on_done: OnRecognitionDone
|
|
5200
|
+
) -> None:
|
|
5201
|
+
"""
|
|
5202
|
+
Start capture and deliver awaited transcription callbacks.
|
|
5203
|
+
|
|
5204
|
+
``on_transcription`` receives non-empty pieces as speech endpoints are
|
|
5205
|
+
decoded, then exactly one ``None``. ``on_done`` follows that terminal
|
|
5206
|
+
marker. Silence does not invoke whisper or produce a piece.
|
|
5207
|
+
"""
|
|
5208
|
+
|
|
5209
|
+
async def stop(self) -> None:
|
|
5210
|
+
"""
|
|
5211
|
+
Stop capture and await the terminal piece and done callbacks.
|
|
5212
|
+
"""
|
|
5213
|
+
|
|
5214
|
+
@property
|
|
5215
|
+
def model_path(self) -> str:
|
|
5216
|
+
"""
|
|
5217
|
+
Path of the loaded whisper model.
|
|
5218
|
+
"""
|
|
5219
|
+
|
|
5220
|
+
@property
|
|
5221
|
+
def options(self) -> SpeechRecognizerOptions:
|
|
5222
|
+
"""
|
|
5223
|
+
The validated native options used by this recognizer.
|
|
5224
|
+
"""
|
|
5225
|
+
|
|
5226
|
+
@property
|
|
5227
|
+
def running(self) -> bool:
|
|
5228
|
+
"""
|
|
5229
|
+
Whether a recognition run is active.
|
|
5230
|
+
"""
|
|
5231
|
+
|
|
5232
|
+
class SpeechRecognizerOptions:
|
|
5233
|
+
"""
|
|
5234
|
+
Configuration for whisper.cpp transcription and adaptive VAD.
|
|
5235
|
+
"""
|
|
5236
|
+
|
|
5237
|
+
_a11_options_installed: typing.ClassVar[bool] = True
|
|
5238
|
+
@staticmethod
|
|
5239
|
+
def __get_pydantic_core_schema__(option_cls, _source_type, _handler): ...
|
|
5240
|
+
@staticmethod
|
|
5241
|
+
def __get_pydantic_json_schema__(option_cls, _schema, _handler): ...
|
|
5242
|
+
@staticmethod
|
|
5243
|
+
def model_json_schema(
|
|
5244
|
+
option_cls, **_: typing.Any
|
|
5245
|
+
) -> dict[str, typing.Any]: ...
|
|
5246
|
+
@staticmethod
|
|
5247
|
+
def model_validate(option_cls, value: typing.Any, **_: typing.Any): ...
|
|
5248
|
+
def __copy__(self): ...
|
|
5249
|
+
def __deepcopy__(self, _memo): ...
|
|
5250
|
+
def __eq__(self, other: object) -> bool: ...
|
|
5251
|
+
def __init__(
|
|
5252
|
+
self,
|
|
5253
|
+
language: str = "auto",
|
|
5254
|
+
translate: bool = False,
|
|
5255
|
+
inference_threads: typing.SupportsInt = 0,
|
|
5256
|
+
use_gpu: bool = True,
|
|
5257
|
+
flash_attention: bool = True,
|
|
5258
|
+
use_context: bool = False,
|
|
5259
|
+
initial_prompt: str = "",
|
|
5260
|
+
subscription_buffer_millis: typing.SupportsInt = 100,
|
|
5261
|
+
vad_threshold: typing.SupportsFloat = 0.009999999776482582,
|
|
5262
|
+
vad_noise_ratio: typing.SupportsFloat = 2.5,
|
|
5263
|
+
vad_window_millis: typing.SupportsInt = 20,
|
|
5264
|
+
min_speech_millis: typing.SupportsInt = 250,
|
|
5265
|
+
min_silence_millis: typing.SupportsInt = 600,
|
|
5266
|
+
speech_pad_millis: typing.SupportsInt = 160,
|
|
5267
|
+
max_speech_seconds: typing.SupportsInt = 30,
|
|
5268
|
+
vad_model_path: str = "",
|
|
5269
|
+
silero_threshold: typing.SupportsFloat = 0.5,
|
|
5270
|
+
) -> None:
|
|
5271
|
+
"""
|
|
5272
|
+
Construct validated speech recognition options.
|
|
5273
|
+
"""
|
|
5274
|
+
|
|
5275
|
+
def __repr__(self) -> str: ...
|
|
5276
|
+
def model_copy(
|
|
5277
|
+
self,
|
|
5278
|
+
*,
|
|
5279
|
+
update: collections.abc.Mapping[str, typing.Any] | None = None,
|
|
5280
|
+
deep: bool = False,
|
|
5281
|
+
): ...
|
|
5282
|
+
def model_dump(self, **_: typing.Any) -> dict[str, typing.Any]: ...
|
|
5283
|
+
|
|
5284
|
+
@property
|
|
5285
|
+
def flash_attention(self) -> bool:
|
|
5286
|
+
"""
|
|
5287
|
+
Use flash attention when supported.
|
|
5288
|
+
"""
|
|
5289
|
+
@flash_attention.setter
|
|
5290
|
+
def flash_attention(self, arg0: bool) -> None: ...
|
|
5291
|
+
|
|
5292
|
+
@property
|
|
5293
|
+
def inference_threads(self) -> int:
|
|
5294
|
+
"""
|
|
5295
|
+
Decoder threads, or zero for the bounded default.
|
|
5296
|
+
"""
|
|
5297
|
+
@inference_threads.setter
|
|
5298
|
+
def inference_threads(self, arg0: typing.SupportsInt) -> None: ...
|
|
5299
|
+
|
|
5300
|
+
@property
|
|
5301
|
+
def initial_prompt(self) -> str:
|
|
5302
|
+
"""
|
|
5303
|
+
Optional initial decoder prompt.
|
|
5304
|
+
"""
|
|
5305
|
+
@initial_prompt.setter
|
|
5306
|
+
def initial_prompt(self, arg0: str) -> None: ...
|
|
5307
|
+
|
|
5308
|
+
@property
|
|
5309
|
+
def language(self) -> str:
|
|
5310
|
+
"""
|
|
5311
|
+
Whisper language code, or 'auto'.
|
|
5312
|
+
"""
|
|
5313
|
+
@language.setter
|
|
5314
|
+
def language(self, arg0: str) -> None: ...
|
|
5315
|
+
|
|
5316
|
+
@property
|
|
5317
|
+
def max_speech_seconds(self) -> int:
|
|
5318
|
+
"""
|
|
5319
|
+
Maximum utterance duration before splitting.
|
|
5320
|
+
"""
|
|
5321
|
+
@max_speech_seconds.setter
|
|
5322
|
+
def max_speech_seconds(self, arg0: typing.SupportsInt) -> None: ...
|
|
5323
|
+
|
|
5324
|
+
@property
|
|
5325
|
+
def min_silence_millis(self) -> int:
|
|
5326
|
+
"""
|
|
5327
|
+
Silence needed to endpoint speech.
|
|
5328
|
+
"""
|
|
5329
|
+
@min_silence_millis.setter
|
|
5330
|
+
def min_silence_millis(self, arg0: typing.SupportsInt) -> None: ...
|
|
5331
|
+
|
|
5332
|
+
@property
|
|
5333
|
+
def min_speech_millis(self) -> int:
|
|
5334
|
+
"""
|
|
5335
|
+
Minimum voiced duration accepted.
|
|
5336
|
+
"""
|
|
5337
|
+
@min_speech_millis.setter
|
|
5338
|
+
def min_speech_millis(self, arg0: typing.SupportsInt) -> None: ...
|
|
5339
|
+
|
|
5340
|
+
@property
|
|
5341
|
+
def silero_threshold(self) -> float:
|
|
5342
|
+
"""
|
|
5343
|
+
Silero speech-probability threshold in (0, 1].
|
|
5344
|
+
"""
|
|
5345
|
+
@silero_threshold.setter
|
|
5346
|
+
def silero_threshold(self, arg0: typing.SupportsFloat) -> None: ...
|
|
5347
|
+
|
|
5348
|
+
@property
|
|
5349
|
+
def speech_pad_millis(self) -> int:
|
|
5350
|
+
"""
|
|
5351
|
+
Audio retained around an utterance.
|
|
5352
|
+
"""
|
|
5353
|
+
@speech_pad_millis.setter
|
|
5354
|
+
def speech_pad_millis(self, arg0: typing.SupportsInt) -> None: ...
|
|
5355
|
+
|
|
5356
|
+
@property
|
|
5357
|
+
def subscription_buffer_millis(self) -> int:
|
|
5358
|
+
"""
|
|
5359
|
+
Duration of internally-created capture buffers.
|
|
5360
|
+
"""
|
|
5361
|
+
@subscription_buffer_millis.setter
|
|
5362
|
+
def subscription_buffer_millis(self, arg0: typing.SupportsInt) -> None: ...
|
|
5363
|
+
|
|
5364
|
+
@property
|
|
5365
|
+
def translate(self) -> bool:
|
|
5366
|
+
"""
|
|
5367
|
+
Translate speech to English.
|
|
5368
|
+
"""
|
|
5369
|
+
@translate.setter
|
|
5370
|
+
def translate(self, arg0: bool) -> None: ...
|
|
5371
|
+
|
|
5372
|
+
@property
|
|
5373
|
+
def use_context(self) -> bool:
|
|
5374
|
+
"""
|
|
5375
|
+
Carry decoder context between utterances.
|
|
5376
|
+
"""
|
|
5377
|
+
@use_context.setter
|
|
5378
|
+
def use_context(self, arg0: bool) -> None: ...
|
|
5379
|
+
|
|
5380
|
+
@property
|
|
5381
|
+
def use_gpu(self) -> bool:
|
|
5382
|
+
"""
|
|
5383
|
+
Use a compiled GPU backend when available.
|
|
5384
|
+
"""
|
|
5385
|
+
@use_gpu.setter
|
|
5386
|
+
def use_gpu(self, arg0: bool) -> None: ...
|
|
5387
|
+
|
|
5388
|
+
@property
|
|
5389
|
+
def vad_model_path(self) -> str:
|
|
5390
|
+
"""
|
|
5391
|
+
Path to a Silero VAD model; empty disables Silero VAD.
|
|
5392
|
+
"""
|
|
5393
|
+
@vad_model_path.setter
|
|
5394
|
+
def vad_model_path(self, arg0: str) -> None: ...
|
|
5395
|
+
|
|
5396
|
+
@property
|
|
5397
|
+
def vad_noise_ratio(self) -> float:
|
|
5398
|
+
"""
|
|
5399
|
+
Speech threshold relative to learned noise.
|
|
5400
|
+
"""
|
|
5401
|
+
@vad_noise_ratio.setter
|
|
5402
|
+
def vad_noise_ratio(self, arg0: typing.SupportsFloat) -> None: ...
|
|
5403
|
+
|
|
5404
|
+
@property
|
|
5405
|
+
def vad_threshold(self) -> float:
|
|
5406
|
+
"""
|
|
5407
|
+
Absolute RMS speech threshold.
|
|
5408
|
+
"""
|
|
5409
|
+
@vad_threshold.setter
|
|
5410
|
+
def vad_threshold(self, arg0: typing.SupportsFloat) -> None: ...
|
|
5411
|
+
|
|
5412
|
+
@property
|
|
5413
|
+
def vad_window_millis(self) -> int:
|
|
5414
|
+
"""
|
|
5415
|
+
RMS analysis window duration.
|
|
5416
|
+
"""
|
|
5417
|
+
@vad_window_millis.setter
|
|
5418
|
+
def vad_window_millis(self, arg0: typing.SupportsInt) -> None: ...
|
|
5419
|
+
|
|
4825
5420
|
class Status:
|
|
4826
5421
|
__hash__: None = None # pyright: ignore[reportIncompatibleMethodOverride]
|
|
4827
5422
|
@staticmethod
|
|
@@ -6713,6 +7308,11 @@ class _StringSchemaMapView:
|
|
|
6713
7308
|
Return a view of the map's values.
|
|
6714
7309
|
"""
|
|
6715
7310
|
|
|
7311
|
+
def audio_device_info(index: typing.SupportsInt) -> AudioDeviceInfo:
|
|
7312
|
+
"""
|
|
7313
|
+
Return metadata for the audio device at `index`.
|
|
7314
|
+
"""
|
|
7315
|
+
|
|
6716
7316
|
def create_in_process_wire_stream_pair(
|
|
6717
7317
|
options: WireStreamOptions | None = None,
|
|
6718
7318
|
first_options: WireStreamOptions | None = None,
|
|
@@ -6722,6 +7322,11 @@ def create_in_process_wire_stream_pair(
|
|
|
6722
7322
|
Create a connected pair of in-process wire streams (free-function form of InProcessWireStream.create_pair).
|
|
6723
7323
|
"""
|
|
6724
7324
|
|
|
7325
|
+
def default_audio_input_device() -> AudioDeviceInfo:
|
|
7326
|
+
"""
|
|
7327
|
+
Return metadata for the host's default input device.
|
|
7328
|
+
"""
|
|
7329
|
+
|
|
6725
7330
|
def default_redis_client() -> RedisClient:
|
|
6726
7331
|
"""
|
|
6727
7332
|
Return the process-global client configured from A11_REDIS_*.
|
|
@@ -6742,6 +7347,11 @@ def is_status_chunk(chunk: Chunk) -> bool:
|
|
|
6742
7347
|
Return True when the chunk carries an action status.
|
|
6743
7348
|
"""
|
|
6744
7349
|
|
|
7350
|
+
def list_audio_devices() -> list[AudioDeviceInfo]:
|
|
7351
|
+
"""
|
|
7352
|
+
Return metadata for every audio device, in index order.
|
|
7353
|
+
"""
|
|
7354
|
+
|
|
6745
7355
|
def make_half_close_message(trailers: typing.Any = {}) -> WireMessage:
|
|
6746
7356
|
"""
|
|
6747
7357
|
Build a half-close wire message carrying the given trailers.
|