Skip to content

Add Voice Feedback sample app #218

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Aug 11, 2025
Merged

Add Voice Feedback sample app #218

merged 1 commit into from
Aug 11, 2025

Conversation

Guardiola31337
Copy link
Contributor

Summary

This PR adds a new Voice Feedback Sample App (feedback-agent-app)
to demonstrate the Mapbox Navigation SDK's voice feedback capabilities.
The app provides a clean, user-friendly interface for capturing and
submitting voice feedback during navigation sessions.

Features

  • 🎤 Voice Feedback Recording: Real-time speech recognition using
    MapGPT experimental APIs
  • 🔊 Speech Recognition Display: Live transcription of user speech
  • 📊 Feedback Submission: Direct integration with Mapbox Navigation
    SDK telemetry
  • 🎨 Modern UI: Material 3 design with Jetpack Compose
  • 🛡️ Permissions Handling: Proper microphone permission management

Architecture

The app follows MVVM architecture with clear separation of concerns:

  • VoiceFeedbackView: Jetpack Compose UI with connection/listening
    controls
  • VoiceFeedbackViewModel: State management and business logic
  • AutomaticSpeechRecognitionEngine: ASR integration layer
  • Domain Models: Clean data structures for speech recognition states

Technical Implementation

  • Uses MapGPT experimental APIs for speech recognition infrastructure
  • AudioLiteMicrophoneMiddleware for microphone access
  • Kotlin Coroutines for reactive programming
  • Integration with Mapbox Navigation SDK telemetry for feedback
    submission

Usage Flow

  1. Grant microphone permissions when prompted
  2. Tap "Connect" to establish connection with voice service
  3. Tap "Start Listening" to begin voice input
  4. Speak feedback naturally
  5. Tap "Stop Listening" to process and submit feedback
  6. View success/error feedback in the UI

Test Plan

  • App builds successfully
  • Microphone permissions are properly requested and handled
  • Voice feedback recording works correctly
  • Speech recognition displays live transcription
  • Feedback submission integrates with Navigation SDK
  • Error handling works for various failure scenarios
  • UI responds appropriately to different states

Files Added

  • Complete feedback-agent-app module with 20+ new files
  • Comprehensive README with usage instructions
  • Proper Android manifest and build configuration
  • Clean domain layer with ASR engine and data models

cc @zugaldia

@Guardiola31337 Guardiola31337 self-assigned this Aug 8, 2025
@Guardiola31337 Guardiola31337 requested a review from a team as a code owner August 8, 2025 15:54
@Guardiola31337 Guardiola31337 force-pushed the pg-feedback-agent-app branch 4 times, most recently from c251f89 to d0d04cc Compare August 11, 2025 10:14
Implements a new feedback-agent-app module that demonstrates voice feedback capabilities using the Mapbox Navigation SDK. The app provides a clean interface for users to provide voice feedback during navigation sessions.

Features:
- Voice feedback recording and processing using MapGPT experimental APIs
- Real-time speech recognition display
- Feedback submission to Mapbox Navigation SDK telemetry
- Material 3 UI with Jetpack Compose
- Proper microphone permissions handling

The app follows MVVM architecture with VoiceFeedbackView, VoiceFeedbackViewModel, and AutomaticSpeechRecognitionEngine components.
@Guardiola31337
Copy link
Contributor Author

Going ahead and merging here 🚀

cc @zugaldia

@Guardiola31337 Guardiola31337 merged commit b264bdf into main Aug 11, 2025
2 checks passed
@Guardiola31337 Guardiola31337 deleted the pg-feedback-agent-app branch August 11, 2025 10:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants