flutter_realtime_voice_ai 0.1.0 copy "flutter_realtime_voice_ai: ^0.1.0" to clipboard
flutter_realtime_voice_ai: ^0.1.0 copied to clipboard

A Flutter package for streaming voice recording, and audio playback with focus on real-time voice interactions.

Flutter Realtime Voice AI #

A Flutter package for streaming voice recording, WebSocket connectivity, and audio playback with focus on real-time voice interactions.

Features #

  • 🎀 Stream Recording: Record audio from device microphones with permission handling
  • πŸ”Š Streaming Playback: Play incoming audio chunks with buffering support
  • πŸ“Š State Management: State tracking for recorder and player
  • ⚑ Real-time Processing: Optimized for low-latency voice interactions
  • πŸ“ Logging: logging for debugging and monitoring

Installation #

Add this to your package's pubspec.yaml file:

dependencies:
  flutter_realtime_voice_ai: ^0.1.0

Then run:

flutter pub get

Custom Configuration #

final config = StreamConfig(
  sampleRate: 16000,
  channels: 1,
  encoder: AudioEncoder.pcm16bits,
  enableNoiseSuppression: true,
  enableEchoCancellation: true,
);

final voiceService = VoiceStreamingService(config: config);

Handling Audio Chunks #

// Listen to incoming audio chunks
voiceService.onAudioChunkReceived = (chunk) {
  print('Received audio chunk: ${chunk.size} bytes');
};

// Send custom audio data
await voiceService.sendAudioChunk(Uint8List.fromList(audioData));

State Management #

// Monitor all states
voiceService.recorderStateStream.listen((state) {
  switch (state) {
    case VoiceRecorderState.recording:
      // Handle recording state
      break;
    case VoiceRecorderState.stopped:
      // Handle stopped state
      break;
    case VoiceRecorderState.error:
      // Handle error state
      break;
  }
});

voiceService.connectionStateStream.listen((state) {
  switch (state) {
    case ConnectionState.connected:
      // Connection established
      break;
    case ConnectionState.disconnected:
      // Connection lost
      break;
    case ConnectionState.error:
      // Connection error
      break;
  }
});

API Reference #

VoiceStreamingService #

The main service that coordinates all voice operations.

Constructor

VoiceStreamingService({
  StreamConfig? config,
  Logger? logger,
})

Methods

  • Future<void> initialize({required String websocketUrl, required String jwtToken, StreamConfig? config}) - Initialize the service
  • Future<void> startStreaming() - Start recording and streaming
  • Future<void> stopStreaming() - Stop recording and streaming
  • Future<bool> checkPermissions() - Check microphone permissions

Streams

  • Stream<VoiceRecorderState> recorderStateStream - Recorder state changes
  • Stream<VoicePlayerState> playerStateStream - Player state changes

Enums #

VoiceRecorderState

  • idle - Not recording
  • recording - Currently recording
  • paused - Recording paused
  • error - Recording error

VoicePlayerState

  • idle - Not playing
  • buffering - Buffering audio
  • playing - Currently playing
  • paused - Playback paused
  • stopped - Playback stopped
  • error - Playback error

ConnectionState

  • disconnected - Not connected
  • streaming - Actively streaming
  • error - Connection error

Permissions #

Add these permissions to your platform-specific files:

Android (android/app/src/main/AndroidManifest.xml) #

<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Platform Support #

  • βœ… Android
  • βœ… iOS

Dependencies #

This package depends on:

  • flutter_sound for audio playback
  • record for audio recording
  • logger for logging

Example #

See the example/ directory for a complete Flutter app demonstrating all package features.

0
likes
0
points
188
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter package for streaming voice recording, and audio playback with focus on real-time voice interactions.

Repository (GitHub)
View/report issues

Topics

#voice #audio #streaming #recording #playback

License

unknown (license)

Dependencies

flutter, flutter_sound, http, logger, path_provider, record, stacked, stacked_services, uuid, web_socket_channel

More

Packages that depend on flutter_realtime_voice_ai