Voice & Speech
Anyy separates incoming Speech-to-Text (STT) from outgoing Text-to-Speech (TTS). Either can be configured without the other. Speech settings and credentials are independent of a working text-chat route.
Configure and Test
Open Dashboard → Models → Voice, or Dashboard → Tools → Voice. Choose TTS or STT, enter the API root and credential, discover or enter a model, and select its matching protocol.
For TTS, configure voice, response format, timeout, maximum text length, and automatic reply behavior; use the audio preview. For STT, configure language, timeout, size/text limits, and failure policy, then run its connection test. A catalog result does not prove that a real synthesis or transcription request works with your account.
CLI wizards:
anyy tools voice tts
anyy tools voice stt
Speech Protocols
| Capability | protocol | Request contract |
|---|---|---|
| TTS | audio-speech | Audio Speech endpoint (/audio/speech) |
| TTS | chat-audio-output | Chat Completions with generated audio (/chat/completions) |
| STT | audio-transcriptions | Multipart Audio Transcriptions (/audio/transcriptions) |
| STT | chat-audio-input | Chat Completions with audio input (/chat/completions) |
Use an API root such as https://api.example.com/v1, not /models, /audio/speech, /audio/transcriptions, or /chat/completions. The canonical speech-endpoint form requires HTTPS, except loopback HTTP for a local server. It rejects URL credentials, query strings, fragments, and credentialed redirects.
Known model contracts choose the matching protocol. For example, the implemented mimo-v2.5-tts route uses chat-audio-output, and mimo-v2.5-asr uses chat-audio-input. This does not make arbitrary future MiMo IDs, realtime speech, voice cloning, voice design, or diarization supported; those specialized models are excluded from ordinary discovery. An unknown manually entered model needs an explicit valid protocol and a successful test.
Advanced Profile configuration also supports named openai/openai-compatible or trusted local command providers; TTS additionally supports named openai-chat-audio. Command routes are configured under tts.providers or media_understanding.audio.providers, not by entering a command as an HTTP Base URL.
Transcribe Audio
Use a channel/input path that delivers a supported audio or voice attachment. The configured STT route converts it before the conversational request. Dashboard's direct uploads currently classify non-PNG/JPEG content as ordinary files, so uploading an audio file there does not automatically trigger STT. See Media Understanding.
The default audio policy is transcript-first, 25 MiB maximum input, 12,000 transcript characters, and a 60-second timeout. annotate, ignore, and fail control failed transcription. The speech-endpoint timeout ceiling is 600,000 ms. Protocol/model limits can be smaller: mimo-v2.5-asr accepts MP3/WAV only and limits base64 input to 10,000,000 bytes (at most 7,500,000 raw bytes).
A language hint is sent where supported. It does not guarantee verbatim transcription or speaker labels, and the wrong hint can harm multilingual recognition.
Generate Spoken Replies
When the text_to_speech tool is available, ask:
Reply with a short voice message in a calm tone.
A successful result becomes an audio attachment marked as AI-generated voice. The endpoint, format, and destination channel determine delivery. The standard TTS adapters default to 4,096 input characters and truncate longer text; set an appropriate maximum or ask for a short reply. Preview and synthesis requests can consume paid quota.
Automatic Channel Replies
voice.auto_tts supplies the default channel behavior. In supporting channel conversations:
| Command | Behavior |
|---|---|
/voice | Toggle between off and voice-input-only replies |
/voice on | Generate speech for replies to voice input |
/voice tts | Generate speech for all replies |
/voice off | Disable automatic speech for this conversation |
/voice status | Show mode and whether it is an explicit or default setting |
The conversation setting overrides the Profile default. It still requires a working TTS service and supported audio delivery; it does not bypass channel size/format limits.
Recordings, transcripts, or reply text may leave the device. Review provider privacy, retention, region, and billing terms before using sensitive content.
Troubleshooting
| Symptom | Check |
|---|---|
| Audio has no transcript | Attachment is audio/voice, STT is enabled, and the format/size/protocol is supported |
| TTS tool is unavailable | TTS route is configured/enabled and the conversation's tools expose text_to_speech |
| Preview fails | API root, credential, model, protocol, voice, and output format |
| Channel receives text only | Voice mode, TTS availability, and channel audio delivery support |
| Speech is cut off | TTS text limit or STT limits and provider timeout |