Swiss German Speech to Text: Why Dialect Is Hard and What Works
Swiss German is hard for speech recognition because it is a family of spoken dialects with no standard spelling, its own words and grammar, and a habit of borrowing from French, Italian and English. You get usable transcripts by writing what was said in Standard German, sending clean audio in the right format, telling the recogniser which languages and terms to expect, and testing on your own recordings rather than trusting a single accuracy figure.
Why Swiss German is hard for speech recognition
Speech recognition has two jobs: hear the words and write them down. Swiss German makes both harder than Standard German does.
There is no standard spelling
Swiss German is spoken far more than it is written, and where it is written, everyone spells it their own way. Two people from Bern will write the same sentence differently, and a message from Zürich looks different again. Here is one sentence in three regions:
| Region | One way to write it | In Standard German |
|---|---|---|
| Zürich | Mir händ morn e Sitzig. | Wir haben morgen eine Sitzung. |
| Bern | Mir hei morn e Sitzig. | Wir haben morgen eine Sitzung. |
| Basel | Mir hän morn e Sitzig. | Wir haben morgen eine Sitzung. |
For a recogniser, there is no single correct dialect transcript to aim for. For you, there would be no consistent spelling to search for later.
Different words and grammar, not just an accent
Swiss German is not Standard German with a Swiss accent. Everyday words differ: luege means schauen (to look), poschte means einkaufen (to shop), Anke is butter. Some words look familiar and mean something else: schmöcke means riechen, to smell, not schmecken, to taste. The grammar differs too. Swiss German has practically no simple past, so ich bi gsi stands where Standard German writes ich war. A useful transcript has to carry all of this over into Standard German, not just spell out the sounds.
Several languages in one conversation
Switzerland has four national languages, and everyday speech crosses between them. A caller from Zürich says merci and exgüsi, a customer in Biel switches between German and French in the middle of a call, and English product names turn up everywhere. A recogniser fixed on one language can bend such words into German ones.
Telephone audio
Much of the Swiss German that companies need to transcribe arrives over the phone: narrow-band 8 kHz audio, compressed, often with traffic or a shop in the background. It carries less detail than a studio recording, and noise takes away more.
Local names and your own terms
Place names such as Wädenswil or Rümlang, family names, product names and internal abbreviations are among the hardest words for any recogniser. They are also the words that matter most in a transcript.
Dialect transcript or Standard German transcript?
There are two ways to write down Swiss German speech: in a dialect spelling or in Standard German. For almost every business use, Standard German is the better choice.
| Dialect spelling | Standard German | |
|---|---|---|
| Spelling | Varies by speaker and region | One standard spelling |
| Search | The same word turns up in many forms | One form per word |
| Analytics and language models | Need extra normalisation first | Work on it directly |
| Dialect flavour | Preserved | Lost; the dialect is not reported |
Suisse Speech therefore writes Swiss German from every region in Standard German and reports the language, for example de-CH, but not the dialect. That is an honest trade-off: if you need a verbatim dialect transcript, for dialect research or dialect subtitles, Standard German output is not what you want. For customer service, call analytics, search and anything that feeds a language model, it is.
If your application answers the caller, the dialect of the reply is your decision, made per deployment, phone line or region. Text-to-speech then renders a Standard German reply into Zürich, Bern, Basel or Lucerne German (Swiss German, text-to-speech).
Seven steps to usable Swiss German transcripts
1. Choose realtime or batch by the job
Live conversations need streaming. Over a WebSocket you receive a partial transcript every 250 ms while the caller speaks, and the final text about 0.1 s after they stop. Recordings are simpler as batch: up to 25 MB in a single request, up to 200 MB as a job, with long recordings transcribed at about a third of real time.
2. Send clean audio in the right format
For the realtime stream, send 16 kHz mono PCM16, and convert 8 kHz call audio before you send it. For files, any common container works: WAV, MP3, Ogg/Opus, FLAC, AAC or raw PCM16. Avoid re-encoding the same recording several times, and check the levels: clipped audio stays clipped.
3. Name the languages you expect
Give one language (de-CH), up to eight candidates (de-CH,fr-CH,en) or auto for German, French, Italian and English. Every result reports the language spoken, and on the stream every partial carries it, so a switch from German to French is visible as it happens. List only the languages you really expect: fewer candidates give steadier results on short utterances.
4. Add your own vocabulary
Pass up to 200 names, products and place names with each request. Use them for the words that matter most: customer and street names, product terms, internal abbreviations.
5. Use word timings and confidence
Every word comes with its start, end and confidence. Use them to jump from a search hit to the right second of a call, to build subtitles, and to send low-confidence passages to a person for review.
6. Test on your own audio
No single accuracy figure for Swiss German tells you how your recordings will do. Microphone, line quality, background noise, vocabulary and the mix of dialects all play a part, which is why we do not publish one. Build a small test set instead:
- 30 to 60 minutes of recordings that represent your real traffic, across regions and line types
- a reference transcript in Standard German for each, written by a native speaker of Swiss German
- a review that weighs errors by what they break: a wrong name, number or negation is worse than a missing filler word
Word error rate is a useful start, but a Standard German transcript translates dialect words, so two correct transcripts can differ in wording. Read the differences, don’t just count them.
7. Settle data handling first
Call recordings contain personal data. Suisse Speech processes audio, text and transcripts in memory and does not store them; results of batch jobs wait until you collect them, 48 hours at most. Speech recognition runs in the EU. The details are on our security page.
A first request
Transcribe a recording, with a few terms of your own:
curl -X POST https://api.suisse-speech.ch/v1/stt \
-H "X-API-Key: $SUISSE_SPEECH_KEY" \
-F audio=@call.wav \
-F lang=de-CH,fr-CH,en \
-F 'vocabulary=["Wädenswil","Halbtax"]'
The response holds Standard German text, the detected language, and the timing and confidence of every word:
{"text":"…","lang":"de-CH","words":[{"w":"Grüezi","start":0.12,"end":0.58,"conf":0.98}],"duration_s":3.4}
For long recordings, submit a job to https://api.suisse-speech.ch/v1/jobs with kind=stt and collect the transcript when it is ready, or give the job a callback URL. For live audio, open wss://api.suisse-speech.ch/v1/stt/stream. The quickstart and the speech-to-text documentation cover both.
Where Swiss German transcription pays off
- Contact centres and voice bots: the caller’s dialect becomes text a bot can act on while they are still speaking.
- Call analytics: recorded calls become searchable Standard German text with word timings.
- Media, e-learning and accessibility: transcripts of spoken Swiss German for subtitles and archives.
Swiss German transcription costs CHF 1.35 per hour of audio in batch and CHF 2.20 per hour in realtime, billed per second (pricing). If you are also looking at ElevenLabs, our comparison of Suisse Speech and ElevenLabs sets out, with sources, what each documents for Swiss German.
FAQ
Can speech recognition transcribe Swiss German dialect?
Yes. Suisse Speech transcribes Swiss German from every region and writes it in Standard German. Recognition also handles Swiss High German, French, Italian and English, and it can detect which of them is spoken.
Why is the transcript in Standard German and not in dialect?
Swiss German has no standard spelling, so a dialect transcript would spell the same word differently from call to call. Standard German keeps transcripts consistent and searchable, and it is what analytics and language models handle best.
Can the API tell which dialect was spoken?
No. Recognition reports the language, for example de-CH, not the regional dialect. If you want to answer in dialect, choose it per deployment, line or region.
How accurate is Swiss German speech-to-text?
That depends on your audio: microphone, line quality, background noise and vocabulary. We do not publish a single accuracy figure. Test it on your own recordings with the 60 free minutes.
What does Swiss German transcription cost?
CHF 1.35 per hour in batch and CHF 2.20 per hour in realtime, excluding VAT, billed per second with no minimum per request. Every new account starts with 60 free minutes.
Are my recordings stored?
No. Audio, text and transcripts are processed in memory and not stored. Results of batch jobs are kept only until you collect them, for 48 hours at most.