Support configurable and randomized interviewer voices and accents
Les mainteneurs répondent en général sous 1 jour
Évaluation
Cette issue n'a pas encore été évaluée.
Description
Summary
Add configurable and randomized interviewer voices and English accents to CodeTrial.
Users will be able to select Jim's voice and English accent independently before starting a mock interview. An optional Random setting will provide different voice and accent combinations across interviews while keeping both settings consistent within each session.
Motivation
In real-world technical interviews, candidates may interact with interviewers from different countries, each with different speaking styles and regional English accents.
Currently, CodeTrial supports configuring Jim's voice through GEMINI_VOICE, but users cannot select or randomize voices and accents from the interview interface.
This feature will help candidates practice listening to different English accents and make repeated mock interviews more realistic and diverse.
Proposed behavior
Voice selection
Provide the following voice options:
- Default
- Puck
- Charon
- Kore
- Orus
- Random
The Default option will preserve the existing GEMINI_VOICE configuration.
English accent selection
Provide the following accent options:
- Default
- American English
- British English
- Australian English
- Canadian English
- Indian English
- Random
The Default option will preserve the existing system instructions without adding accent-specific instructions.
Interview consistency
Voice and accent settings will be independent.
Random selections will be resolved once when an interview is created. The selected voice and accent will remain unchanged throughout the interview, including Gemini Live reconnections.
Each new interview may use a different combination.
Preliminary testing
I successfully built CodeTrial from source on macOS with Apple Silicon.
Voice testing
I changed GEMINI_VOICE between Puck and Charon. Both configurations worked during mock interviews and produced noticeably different voices.
English accent testing
I kept the Charon voice unchanged and modified the Gemini Live system instruction to request regional English accents.
For British English, I used:
Speak exclusively in English using a natural Standard Southern British English accent. Maintain this accent consistently throughout the interview.
For Indian English, I used:
Speak exclusively in English using a natural, clear Indian English accent appropriate for a professional technical interview. Maintain this accent consistently throughout the interview.
CodeTrial compiled and ran successfully with these instructions, and Jim produced noticeably different accents during the mock interviews.
Current testing status
- Puck and Charon voice switching: Tested successfully.
- American English accent: Default behavior (baseline).
- British English accent: Tested successfully.
- Australian English accent: Tested successfully.
- Canadian English accent: Tested successfully.
- Indian English accent: Tested successfully.
- Randomized voice and accent selection: Not yet implemented.
These results are based on preliminary listening observations rather than systematic acoustic evaluation. Accent consistency across multiple sessions still requires further testing.
Technical analysis and implementation plan
Existing architecture
The current interview configuration follows this path:
web/interview.jssends interview settings throughPOST /api/token.src/web/token.rsprocesses the request and creates LiveKit participant metadata.src/agent.rsparses participant metadata intoMetadataConfig.src/livekit.rspasses the parsed settings throughRuntimeOptions.src/runtime.rscreatesRuntimeBootstrap, currently usingconfig.gemini_voicefor the interviewer voice.src/gemini.rsconfigures Gemini Live usingvoiceNameandsystemInstruction.
These integration points were identified by inspecting the existing source code.
Technical analysis and implementation plan
Existing architecture
CodeTrial already provides a configuration path for interview settings:
web/interview.jssends settings throughPOST /api/token.src/web/token.rscreates LiveKit participant metadata.src/agent.rsparses the metadata.src/livekit.rsandsrc/runtime.rsinitialize the interview configuration.src/gemini.rsconfigures the Gemini Live voice and system instructions.
Proposed changes
- Add voice and English accent selections to the interview interface.
- Extend the existing request and participant metadata to carry these selections.
- Validate the selected options against predefined supported values.
- Pass the selected voice to Gemini Live through
voiceName. - Add the selected accent instruction to
systemInstructionwithout replacing the original interview instructions. - Resolve Random selections once per interview and preserve them during reconnections.
- Preserve the existing behavior when no new settings are provided.
Accent generation will remain best-effort because Gemini Live cannot guarantee consistent regional accents.
Implementation scope
The feature will be implemented incrementally:
- Voice selection.
- English accent selection.
- Per-interview randomization.
I intend to contribute these changes, beginning with voice selection.
- Langage dominant
- Rust
- Étoiles
- 144
- Forks
- 41
- Merge moyen
- 1 j 7 h
- PR mergées (30 j)
- 93
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de sysprog21/codetrial
-
Highlight the active line in the code editorPeut-être pris @ArthurArthurArthur0817 l’a pris il y a 3 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
sysprog21/codetrial#247 · 2 commentaires · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
Downloaded markdown reports use internal lowercase keys instead of display labels for programming languagesPeut-être pris @SkyDrive2 l’a pris il y a 1 jour. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
sysprog21/codetrial#246 · 2 commentaires · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
sysprog21/codetrial#258 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 1-2 jours Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour
-
Add an example drawing area to coding interviewsPeut-être pris @Chuyutseng l’a pris il y a 1 jour. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 55/100
sysprog21/codetrial#255 · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de sysprog21/codetrial
Issues similaires
-
✨ enhancement needs-discussion
Difficulté 1/5 Moins d'une heure Accessibilité débutants 85/100
-
docs(openclaw): RTK_REWRITE_HOST relaxes every default ask, not only commands no rule matchedOuvertearea:docs documentation good first issue priority:low
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
rtk-ai/rtk#4500 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
triage:accepted
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
open-telemetry/otel-arrow#4343 ·
Les mainteneurs répondent en général sous 2 jours
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
mishraprafful/multihull#150 ·
Les mainteneurs répondent en général sous 1 jour
-
area:tooling bug good first issue priority:P3
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
michaelnavazhylau/ngspice-rs#129 ·
Les mainteneurs répondent en général sous 1 jour