Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Support configurable and randomized interviewer voices and accents

Aperta
#261 2 commenti 0 reazioni 1 assegnatario Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@MorganHo001 ci sta già lavorando.

Dal 8/10/2026.

  • #265 di @MorganHo001 — aperta

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:

  1. web/interview.js sends interview settings through POST /api/token.
  2. src/web/token.rs processes the request and creates LiveKit participant metadata.
  3. src/agent.rs parses participant metadata into MetadataConfig.
  4. src/livekit.rs passes the parsed settings through RuntimeOptions.
  5. src/runtime.rs creates RuntimeBootstrap, currently using config.gemini_voice for the interviewer voice.
  6. src/gemini.rs configures Gemini Live using voiceName and systemInstruction.

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:

  1. web/interview.js sends settings through POST /api/token.
  2. src/web/token.rs creates LiveKit participant metadata.
  3. src/agent.rs parses the metadata.
  4. src/livekit.rs and src/runtime.rs initialize the interview configuration.
  5. src/gemini.rs configures 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 systemInstruction without 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:

  1. Voice selection.
  2. English accent selection.
  3. 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

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di sysprog21/codetrial

Tutte le issue di sysprog21/codetrial

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.