Quickstart

Base URL https://api.suisse-speech.ch/v1 · X-API-Key

You need an API key. Every new account comes with 60 free minutes of speech-to-text and text-to-speech, and a sandbox key for tests. Request your key if you do not have one yet.

Keep the key in an environment variable rather than in your code:

export SUISSE_SPEECH_KEY="sv_..."

Speak a sentence

Standard German text in, Zürich German audio out:

curl -X POST https://api.suisse-speech.ch/v1/tts \
  -H "X-API-Key: $SUISSE_SPEECH_KEY" -H 'Content-Type: application/json' \
  -d '{"text":"Grüezi, schön sind Sie da.","voice":"anna","language":"de-CH","dialect":"zurich"}' \
  --output greeting.mp3

The response body is the audio. Its length in seconds, the unit you are billed in, is in the X-Suisse-Audio-Duration header.

Transcribe a file

curl -X POST https://api.suisse-speech.ch/v1/stt \
  -H "X-API-Key: $SUISSE_SPEECH_KEY" \
  -F audio=@recording.wav -F lang=de-CH
{"text":"…","lang":"de-CH","words":[{"w":"Grüezi","start":0.12,"end":0.58,"conf":0.98}],"duration_s":3.4}

Swiss German speech is written as Standard German text.

See what the service can do

curl -H "X-API-Key: $SUISSE_SPEECH_KEY" https://api.suisse-speech.ch/v1/capabilities

The answer lists every voice, language, dialect, audio format, parameter range, limit and error code. Read it at start-up rather than hard-coding lists.

Test without spending anything

A sandbox key (sv_test_…) returns audio and transcripts that are structurally identical to the real thing, produced locally at no cost. Use it in continuous integration:

curl -X POST https://api.suisse-speech.ch/v1/tts \
  -H "X-API-Key: $SUISSE_SPEECH_SANDBOX_KEY" -H 'Content-Type: application/json' \
  -d '{"text":"CI run 4711","voice":"anna","format":"mp3"}' --output ci.mp3

Next steps