Support configurable and randomized interviewer voices and accents
Los mantenedores suelen responder en 1 día
Evaluación
Este issue todavía no se ha evaluado.
Descripción
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.
- Lenguaje dominante
- Rust
- Estrellas
- 144
- Forks
- 41
- Merge medio
- 1 d 7 h
- PR fusionados (30 d)
- 93
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de sysprog21/codetrial
-
Highlight the active line in the code editorPosiblemente ocupada @ArthurArthurArthur0817 la tomó hace 2 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
sysprog21/codetrial#247 · 2 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Downloaded markdown reports use internal lowercase keys instead of display labels for programming languagesPosiblemente ocupada @SkyDrive2 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
sysprog21/codetrial#246 · 2 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
sysprog21/codetrial#258 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 1-2 días Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
Add an example drawing area to coding interviewsPosiblemente ocupada @Chuyutseng la tomó hace 1 día. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
sysprog21/codetrial#255 · 1 asignado ·
Los mantenedores suelen responder en 1 día
Todos los issues de sysprog21/codetrial
Issues similares
-
docs(openclaw): RTK_REWRITE_HOST relaxes every default ask, not only commands no rule matchedAbiertoarea:docs documentation good first issue priority:low
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
rtk-ai/rtk#4500 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
triage:accepted
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
open-telemetry/otel-arrow#4343 ·
Los mantenedores suelen responder en 2 días
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
mishraprafful/multihull#150 ·
Los mantenedores suelen responder en 1 día
-
`npx --package=vite-plus vp create` fails with exit 127 when npm is the chosen package managerAbiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
voidzero-dev/vite-plus#2970 ·
Los mantenedores suelen responder en 1 día
-
ai_p2 comp-parquet-reader-v3
Dificultad 2/5 Medio día Aptitud para principiantes 66/100
ClickHouse/ClickHouse#124986 ·
Los mantenedores suelen responder en 1 día