voice
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
index.ts
https://rehanbgmi--e34b8522340d11f09a599e149126039e.web.val.run
A real-time speech transcription application optimized for Indian English accents, similar to Otter.ai. Users can join channels where their speech is transcribed in real-time and visible to all other users in the channel.
- Real-time speech-to-text transcription optimized for Indian English accents
- Channel-based communication where multiple users can join
- Live updates as users speak or type
- Mobile-friendly interface
- User authentication and profile management
├── backend/
│ ├── database/
│ │ ├── migrations.ts # Schema definitions
│ │ └── queries.ts # DB query functions
│ ├── routes/ # Route modules
│ │ ├── auth.ts # Authentication routes
│ │ ├── channels.ts # Channel management
│ │ └── static.ts # Static file serving
│ ├── websocket/
│ │ └── handler.ts # WebSocket connection handling
│ └── index.ts # Main entry point
├── frontend/
│ ├── components/
│ │ ├── App.tsx
│ │ ├── ChannelView.tsx
│ │ ├── Login.tsx
│ │ └── Transcription.tsx
│ ├── favicon.svg
│ ├── index.html # Main HTML template
│ ├── index.tsx # Frontend JS entry point
│ └── style.css
└── shared/
├── types.ts # Shared type definitions
└── utils.ts # Shared utility functions
- Backend: Hono.js with WebSockets
- Frontend: React with TypeScript
- Database: SQLite for persistent storage
- Speech Recognition: Web Speech API with customization for Indian English
- Styling: TailwindCSS
- Users create an account or log in
- They can create a new channel or join an existing one
- Once in a channel, they can start speaking or typing
- The speech is transcribed in real-time using the Web Speech API
- Transcriptions are sent to all users in the channel via WebSockets
- All users see the transcriptions in real-time with speaker identification
- Speech recognition quality depends on the browser's implementation of Web Speech API
- Optimization for Indian English accents is achieved through configuration but may not be perfect