Configure languages and bilingual behavior
The primary language controls how a voice agent begins the conversation and helps Wirevox choose compatible speech recognition and voice settings. The editor currently exposes English and French.
Treat language selection as an end-to-end configuration. The language model, speech recognition provider, voice, prompt, functions, and knowledge sources must all work in that language.
Configure one language
- Open the voice agent draft.
- In Configuration, select the primary language.
- Review the voice selection. Wirevox replaces a language-specific voice when it is incompatible with the new language; compatible multilingual voices can remain selected.
- For a Modular agent, review the speech recognition provider.
- Write the greeting, clarification questions, function confirmations, and fallback behavior for that language.
- Test recognition and pronunciation with representative speakers.
When a Modular agent has one non-English primary language, Wirevox adds an operational language instruction at runtime. Your authored system prompt should still describe business vocabulary and desired behavior clearly; runtime enforcement is not a replacement for testing.
Configure a bilingual Modular agent
- Select the primary language and primary voice.
- Add the secondary language.
- Select or verify the secondary voice.
- Review speech recognition. Auto resolves to a multilingual configuration when a secondary language exists.
- Test callers who begin in each language and callers who switch languages mid-conversation.
At runtime, Wirevox instructs the model to start in the primary language and tag each generated response with its language. The Modular pipeline removes that internal tag before speech and routes the response to the matching primary or secondary voice. The tag is an implementation detail and should not be added manually to the system prompt.
The configured secondary language also enables multilingual recognition hints or code switching in supported Modular transcription providers.
Realtime limitation
Realtime sessions currently use one provider voice for the whole session. The editor can preserve secondary-language fields in configuration, but the Realtime pipeline does not execute secondary-language or secondary-voice switching.
If two configured voices are a requirement, use Modular. If you choose Realtime for its spoken interaction quality, design and test the agent as one provider-voice session and do not document it internally as Wirevox bilingual voice routing.
Voice selection during language changes
- A language-specific voice is replaced when it does not support the selected language.
- Multilingual OpenAI, Fish Audio, Cartesia, and similar catalog voices can be reused across the enabled languages.
- Rime can select a corresponding voice model for the other supported language.
- A native monolingual voice uses a compatible native secondary voice.
These are selection rules, not quality guarantees. Preview both voices and listen for an abrupt change in volume, identity, pace, or pronunciation when the language switches.
Prompt and content guidance
- Write one stable role and policy instead of duplicating two contradictory prompts.
- Define whether the agent should follow the caller's language automatically or ask before switching.
- Keep function names internal, but make confirmation wording natural in both languages.
- Make knowledge content available in the language callers will use. Retrieval can return relevant text, but it does not translate or validate the source automatically.
- Define how to handle unsupported languages: continue in the primary language, offer a transfer, or collect a callback request.
Test cases
- Caller starts in English.
- Caller starts in French.
- Caller switches once after the greeting.
- Caller mixes a business name or address from the other language.
- Dates and times are repeated and confirmed correctly.
- A function asks for and confirms required fields in each language.
- The voice does not speak the internal language tag.