arcane_voice 1.0.0 copy "arcane_voice: ^1.0.0" to clipboard
arcane_voice: ^1.0.0 copied to clipboard

Flutter client runtime for provider-agnostic realtime voice calls through an Arcane Voice proxy.

arcane_voice #

arcane_voice is the Flutter client runtime for Arcane Voice realtime calls. It owns the proxy-facing websocket transport, microphone capture, streamed audio playback, call/session orchestration, and transcript state management.

This package is intentionally UI-light. It gives apps the call runtime and state; the demo UI lives in the repository example app.

Public surface #

  • CallSessionController Coordinates the websocket session, audio services, provider selection, voice selection, mute state, and transcript state.
  • RealtimeSocketClient Sends and receives the typed realtime protocol over websocket, with audio kept as binary frames.
  • AudioCaptureService Captures microphone PCM audio suitable for proxy streaming.
  • AudioPlaybackService Buffers and plays streamed PCM audio replies.
  • TranscriptTimeline Reduces transcript delta/final events into stable conversation history.
  • shared exports from arcane_voice_models Provider catalog, protocol models, and turn-detection config are re-exported so client apps do not need to import both packages directly.

Getting started #

Point the controller at a running Arcane Voice proxy:

import 'package:arcane_voice/arcane_voice.dart';

CallSessionController controller = CallSessionController(
  serverUrl: 'ws://127.0.0.1:8080/ws/realtime',
);

Typical app flow:

await controller.startCall();

controller.onProviderChanged(RealtimeProviderCatalog.gemini);
controller.onVoiceChanged('Kore');

await controller.stopCall();
controller.dispose();

The controller exposes the current:

  • session state
  • transcript entries
  • provider, model, and voice selection
  • start, stop, mute, and unmute actions
  • latest proxy/provider error

Permissions #

Apps using this package need microphone and network permissions. The repository example app includes working Android, iOS, and macOS setup.

Protocol boundary #

Structured control/config traffic uses the typed models from arcane_voice_models. Audio remains raw binary websocket frames so the client runtime can stay low-latency and provider-agnostic.

0
likes
0
points
262
downloads

Publisher

verified publisherarcane.art

Weekly Downloads

Flutter client runtime for provider-agnostic realtime voice calls through an Arcane Voice proxy.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

arcane_voice_models, fast_log, flutter, flutter_soloud, record, web_socket_channel

More

Packages that depend on arcane_voice