Need an AI phone assistant? Suisse Line answers your calls 24/7, Swiss dialects included, no programming needed.Go to Suisse Line
NewVoice Agents

Realtime voice agents in Swiss German

Stream the caller’s audio over one WebSocket. The agent listens, understands and answers with natural speech in real time, in the dialect or regional variety your callers speak: Zürich, Bern, Basel or Lucerne German, the French of French-speaking Switzerland, the Italian of Ticino. Standard German and English are available too. You write the instructions and connect your own systems, we run the conversation.

CHF 0.33 per minute (CHF 19.80 per hour), billed per second of connected session time. Free sandbox keys.

Not a developer?

Suisse Speech is the API for teams that build their own voice agent. If you simply want an AI phone assistant for your business, use Suisse Line, our ready-to-use product: it answers your calls 24/7 and books appointments, Swiss dialects included. No programming needed.

Go to Suisse Line

How it works

1. Describe your agent

Open the WebSocket and send session.start with your instructions, the language and dialect, a voice and, if you like, a greeting and tools.

2. Stream the conversation

Send the caller’s audio as it arrives, from a browser microphone or a telephone line. Transcripts of what the caller says appear live.

3. Play the answers

The agent answers with natural speech. You play the audio frames as they arrive and get a live transcript of every reply. If the caller interrupts, the agent stops and tells you which buffered audio to drop.

Start a session

session.start
ws.send(JSON.stringify({
  type: 'session.start',
  language: 'de-CH', dialect: 'bern', voice: 'anna',
  instructions: 'Du bist die Terminvergabe der Praxis Muster. ' +
                'Sprich kurz und freundlich.',
  greeting: 'Grüezi, Praxis Muster. Wie kann ich helfen?',
  vocabulary: ['Muster', 'Dr. Brunner', 'Bremgarten'],
  input:  { encoding: 'mulaw', sample_rate_hz: 8000 },  // phone line
  output: { encoding: 'mulaw', sample_rate_hz: 8000,
            transport: 'binary' },
  turn_taking: { mode: 'auto', interruptions: true },
  tools: [{
    name: 'book_appointment',
    description: 'Books an appointment for the caller.',
    parameters: {
      type: 'object',
      properties: {
        name: { type: 'string' }, time: { type: 'string' },
      },
      required: ['name', 'time'],
    },
  }],
}));

Audio and tool calls

wss://api.suisse-speech.ch/v1/agent/stream
ws.on('message', async (data, isBinary) => {
  if (isBinary) return player.write(data);     // agent's voice

  const m = JSON.parse(data.toString());
  switch (m.type) {
    case 'audio.clear':                        // caller interrupted
      player.clear(); break;
    case 'user.transcript.final':
      log('caller', m.text); break;
    case 'reply.done':
      log('agent', m.transcript); break;
    case 'tool.call': {                        // ask your backend
      const result = await bookAppointment(m.arguments);
      ws.send(JSON.stringify({
        type: 'tool.result', call_id: m.call_id,
        output: JSON.stringify(result),
      }));
      break;
    }
  }
});

What an agent can do

Swiss dialects and varieties

Understands and speaks Swiss German dialects (Zürich, Bern, Basel, Lucerne and general Swiss German), Swiss French and Ticino Italian. You choose language and dialect per session.

Your instructions

Persona, knowledge and rules in plain words, up to 16,000 characters, plus names and terms the agent should recognise. Change them during the call.

Tools and function calls

Define up to 32 functions. When the agent needs something, it asks your backend, for example to look up an order or book an appointment, and speaks the result.

Natural interruptions

Callers can talk over the agent. It stops speaking and listens, and your client drops the audio it had not played yet.

Telephone audio

G.711 µ-law and A-law at 8 kHz for telephone lines, or PCM at 8, 16, 24 or 48 kHz for browsers and apps.

Live transcripts

Partial and final transcripts of the caller and of every reply as the conversation happens, for logs, captions or analytics.

Swiss dialects and regional varieties, understood and spoken

Choose the language per session and, for Swiss German, the dialect. Swiss French (fr-CH) and Swiss Italian (it-CH) are regional varieties with their own wording, such as septante, natel or franchi. Standard German, French, Italian and English are available too.

All Swiss varieties →

  • Zürich German (Züritüütsch) dialect: "zurich"
  • Bernese German (Bärndütsch) dialect: "bern"
  • Basel German (Baaseldütsch) dialect: "basel"
  • Lucerne German (Lozärnerdütsch) dialect: "luzern"
  • General Swiss German dialect: "standard"
  • Swiss French (French-speaking Switzerland) language: "fr-CH"
  • Swiss Italian (Ticino) language: "it-CH"
  • Standard German, French, Italian, English de-DE, fr, it, en

What you can build

Phone assistant

Answer calls around the clock: opening hours, directions and everyday questions. Anything more complex goes to your team through a tool call.

Appointment booking

The agent checks free slots in your calendar through a tool call, agrees a time with the caller and books it.

Customer service

Order status, delivery, contract questions: the agent looks the answer up in your systems and replies in the language and dialect you configured.

Voice in your app

Add a voice assistant to a web or mobile app: microphone in, spoken answers out, with transcripts you can show on screen.

Formats for phones and browsers

Telephone lines use G.711 µ-law or A-law at 8 kHz. Browsers and apps use PCM at 8, 16, 24 or 48 kHz. Audio travels as binary WebSocket frames in the format you declare, in both directions. Your client needs echo cancellation, which phone lines and browsers (echoCancellation) provide. Otherwise the agent may hear itself.

One price, billed per second

CHF 0.33 per minute, which is CHF 19.80 per hour, excluding VAT. Billing runs per second of connected session time, from the moment the session is ready until it closes, and draws on the same prepaid credit as speech-to-text and text-to-speech. Sandbox keys run a synthetic session with the same events and are never billed.

See all prices →

Frequently asked questions

How fast does the agent answer?

It starts speaking as soon as it has understood the caller, and audio streams while the reply is still being produced. The exact delay depends on your connection, your tools and the length of the answer, so measure it with a live key on your own line. We publish no single figure.

Which languages and dialects does the agent speak?

Swiss German in the dialects Zürich, Bern, Basel, Lucerne and general Swiss German (de-CH), Swiss French (fr-CH) and Swiss Italian (it-CH), plus Standard German (de-DE), French (fr), Italian (it) and English (en). GET /capabilities lists what your key can use.

Can I connect it to a telephone line?

Yes. The agent listens and speaks G.711 µ-law and A-law at 8 kHz, the format of telephone lines, so your telephony platform or media gateway can pass the call audio to the WebSocket and play back what it receives. Phone lines already cancel echo.

Can the agent look things up or book appointments?

Yes, with tools. You describe up to 32 functions, and when the agent needs one it asks your backend and speaks the result. A call your backend does not answer within 30 seconds is reported to the agent as timed out and is never retried automatically.

How do I test without paying?

Use a sandbox key (sv_test_…). It runs a synthetic session with the same events as a live one, so you can build and test your client at no cost. Sandbox sessions are never billed. Judge voice and dialect quality with a live key.

What happens to the audio and the transcripts?

The security page describes what is stored and where processing takes place, and how to sign our data processing agreement.

Security and data protection →

Try it on your own audio

Get 60 free minutes of speech-to-text and text-to-speech. No credit card required.