Modern, hands-free Google Maps navigation app
Navigate Google Maps Street View using voice commands and keyboard controls
A modern, feature-rich voice navigation application that combines the power of the Web Speech API with Google Maps Street View for an intuitive navigation experience. Built with modern JavaScript ES6+ modules and a clean, responsive UI.
- Natural language commands - "Go forward", "Turn left", "Look up"
- Compass directions - "North", "South", "East", "West"
- Confidence threshold - 60% accuracy for reliable recognition
- Real-time feedback - Live confidence percentages displayed
- Street View integration - Navigate through Google Street View
- Search functionality - Find any location by address
- Fast mode toggle - 5x movement speed multiplier
- Smooth movement - Fluid position and view transitions
- Modern dark theme - Clean, professional design
- Responsive layout - Optimized for all screen sizes
- Categorized logging - Filter by system, maps, voice, search, location, errors
- Real-time feedback - Live activity monitoring with icons
- Voice shortcuts -
S
to start,E
to end recognition - Movement keys - Arrow keys for navigation
- Advanced controls -
H/J
for left/right,N/M
for look up/down
- Node.js (v16+ recommended)
- Google Maps API Key with Maps JavaScript API and Geocoding API enabled
-
Clone the repository
git clone https://github.com/vagnervjs/voice-navigation.git cd voice-navigation
-
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env # Edit .env and add your Google Maps API key
-
Start the development server
npm run dev
-
Open your browser
- Navigate to
http://localhost:3000
- Allow microphone and location access when prompted
- Start navigating with voice commands!
- Navigate to
This application requires two critical permissions to function properly:
- Required for: Voice recognition commands
- When prompted: Click "Allow" when browser asks for microphone access
- Troubleshooting:
- Check browser address bar for microphone icon
- Go to browser settings β Privacy & Security β Microphone
- Ensure
localhost:3000
is allowed
- Required for: Getting your current position as starting point
- When prompted: Click "Allow" when browser asks for location access
- What it does: Centers the map on your current location for better navigation
- Troubleshooting:
- Check browser address bar for location icon
- Go to browser settings β Privacy & Security β Location
- Ensure
localhost:3000
is allowed - Note: App will still work without location access, but you'll need to search for a starting location
Chrome/Edge:
- Click the lock icon in the address bar
- Set Microphone and Location to "Allow"
- Refresh the page
Firefox:
- Click the shield icon in the address bar
- Enable microphone and location permissions
- Refresh the page
Safari:
- Go to Safari β Settings β Websites
- Select Camera/Microphone and Location Services
- Set permissions for
localhost