Support configurable and randomized interviewer voices and accents
I maintainer di solito rispondono entro 1 giorno
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
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.
- Lingua principale
- Rust
- Stelle
- 144
- Fork
- 41
- Merge medio
- 1g 7h
- PR unite (30g)
- 93
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di sysprog21/codetrial
-
Highlight the active line in the code editorForse già presa @ArthurArthurArthur0817 l’ha presa 2 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
sysprog21/codetrial#247 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Downloaded markdown reports use internal lowercase keys instead of display labels for programming languagesForse già presa @SkyDrive2 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
sysprog21/codetrial#246 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
sysprog21/codetrial#258 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 1-2 giorni Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Add an example drawing area to coding interviewsForse già presa @Chuyutseng l’ha presa 1 giorno fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
sysprog21/codetrial#255 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di sysprog21/codetrial
Issue simili
-
[Feature]: [P3] engine-rs: the package source hash should ignore line endings and untracked filesAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
maniator/verticopolis#880 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
I maintainer di solito rispondono entro 3 giorni
-
defect
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 2 giorni