Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Support configurable and randomized interviewer voices and accents

Ouverte
#261 2 commentaires 0 réactions 1 personne assignée Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

@MorganHo001 y travaille déjà.

Depuis le 8/10/2026.

  • #265 par @MorganHo001 — ouverte

É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:

  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.

Langage dominant
Rust
Étoiles
144
Forks
41
Merge moyen
1 j 7 h
PR mergées (30 j)
93

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de sysprog21/codetrial

Toutes les issues de sysprog21/codetrial

Issues similaires

Plus d'issues Rust

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.