Add Microsoft voice live service - #82
Merged
Merged
Conversation
…echTimeout events
…sion updated message
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a new microsoft-voice-live service crate to support Microsoft Foundry Voice Live Realtime (transcription-focused) endpoints, and updates existing realtime event types to consistently serialize variant fields in camelCase (needed for OpenAI/Azure-style realtime JSON payloads). This also extends the transcribe example and docs to allow experimenting with Azure Semantic/Smart VAD parameters.
Changes:
- Introduce
services/microsoft-voice-live(host/client/transcription buffering) and register it in the main registry + service re-exports. - Normalize realtime
Service{Input,Output}Eventserde attributes to applycamelCaseto enum variant fields consistently. - Extend CLI example/docs/just targets to run the new Voice Live provider and provide env var configuration guidance.
Reviewed changes
Copilot reviewed 20 out of 21 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| src/lib.rs | Re-exports the new MicrosoftVoiceLiveTranscribe service from the top-level services module. |
| src/context_switch.rs | Registers the new service in the runtime service registry under microsoft-voice-live-transcribe. |
| services/openai-dialog/src/types.rs | Updates serde tagging/casing rules for realtime input/output event enums. |
| services/openai-dialog/src/transcription_state.rs | Adds new transcription buffering/state module for interim + final transcript assembly. |
| services/openai-dialog/src/lib.rs | Switches module wiring to use transcription_state. |
| services/openai-dialog/src/client.rs | Updates imports to the new transcription state module. |
| services/openai-dialog/Cargo.toml | Bumps tokio-tungstenite to 0.29.0. |
| services/microsoft-voice-live/src/lib.rs | New crate entrypoint exporting params/service/events. |
| services/microsoft-voice-live/src/transcribe.rs | Implements Service wrapper and defines service-level control events + defaults. |
| services/microsoft-voice-live/src/host.rs | Builds Voice Live websocket URL and connects via Azure realtime protocol settings. |
| services/microsoft-voice-live/src/client.rs | Implements websocket loop, session update, audio append, and transcription event handling. |
| services/microsoft-voice-live/src/transcription_state.rs | New minimal transcription buffer state (input-side only). |
| services/microsoft-voice-live/Cargo.toml | New crate dependencies and workspace integration. |
| services/google-dialog/src/types.rs | Aligns serde casing rules for realtime event enums. |
| README.md | Documents how to run the transcribe example with Voice Live + required env vars. |
| justfile | Adds a convenience target for Voice Live transcription in German. |
| examples/transcribe.rs | Adds voice-live provider option and wires up Voice Live params + (experimental) Azure semantic VAD config. |
| CONTEXT.md | Adds terminology glossary distinguishing Azure Speech vs Azure OpenAI Realtime vs Voice Live. |
| Cargo.toml | Adds the new service crate as a workspace member and workspace dependency. |
| .harper-dictionary.txt | Adds “VAD” to spelling dictionary. |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The goal of this PR is to add a basic service that supports Microsoft Voice Live API endpoints and to experiment with Semantic / Smart VAD.