About this project

Qingran is a voice chat tool designed primarily around Rosie interaction scenarios. It offers two voice input methods: push-to-talk and speakerphone, and supports Eve reading replies aloud. The project includes a long-term memory feature, with memory data stored in the user's own Neon database and not dependent on the GitHub repository. Users can edit the system prompt in settings to adjust assistant behavior. The project provides a local running method: start it with npm install and npm run dev, listening on 0.0.0.0:8080 by default. Online deployment uses APP_PASSWORD as the site-wide password and performs session verification through an HMAC cookie (qr_session); the local development environment does not enable this authentication layer. Settings provide backup export and import functions, making it easy to migrate memory data when changing domains. The hearing engine can be configured in settings. When annotation mode is enabled, every spoken sentence is saved as a clip, and the annotation page is located at /lab. The project uses xAI's speech-to-text interface, explicitly specifying model=grok-voice-transcribe-2.0, and configures fixed keywords, filler_words, and an adjustable vad_threshold. The README notes that xAI STT does not officially support Chinese, so the language list does not include zh. The project also provides a self-hosted GPU solution, with related instructions in deploy/README.md. The evaluation script scripts/eval-hearing.mjs can be used to generate CSV evaluation results from exported hearing data against a test set.