Voice Translator App

This app provides text translation, speech-to-text, and text-to-speech functionality. It runs an Express server and serves a single-page frontend.

HTTPS for microphone access

Modern browsers require a secure context (HTTPS or localhost over HTTPS) for getUserMedia microphone access. This project can start an HTTPS server on https://localhost:3443 using either your own certificate files or a generated self-signed certificate.

How to run

  1. Install dependencies:
cd /Users/chadee/Ria
npm install
  1. Start the server (HTTP + HTTPS):
npm start

This starts the HTTP server on http://localhost:3000 and an HTTPS server on https://localhost:3443.

Using your own certificate

If you have SSL certificate and key files, set the following environment variables before starting the server:

export SSL_CERT_PATH=/path/to/cert.pem
export SSL_KEY_PATH=/path/to/key.pem
npm start

When no certificate is provided, the server generates a temporary self-signed certificate at runtime and serves HTTPS on https://localhost:3443.

Accepting the self-signed cert warning

When using the generated self-signed certificate, your browser will show a security warning. To proceed:

  • In Chrome/Edge/Brave: Click "Advanced" → "Proceed to localhost (unsafe)".
  • In Firefox: Accept the risk and continue.
  • In Safari: Go to System Settings → Privacy & Security → Certificates to trust the localhost certificate if needed.

After accepting the warning, open https://localhost:3443 and allow microphone access when prompted. The site will run in a secure context and getUserMedia will work.

Notes

  • The server will log a warning when generating a temporary self-signed certificate.
  • For production deployments use valid CA-signed certificates.
Description
No description provided
Readme 89 KiB
Languages
JavaScript 87.5%
CSS 6.5%
HTML 6%