pipedog is an unofficial community port of Pipecat, not affiliated with Daily.
pipedog
Text-to-speech

Speechmatics

Text-to-speech with Speechmatics.

Overview

SpeechmaticsTTSService calls Speechmatics' HTTP TTS endpoint (POST /generate/<voice>?output_format=pcm_16000) and streams the PCM body as audio frames. The endpoint is documented as a preview.

Installation

bun add @pipedog/speechmatics

Prerequisites

SpeechmaticsTTSService

Configuration

Prop

Type

Settings

Runtime-updatable settings, passed as settings: new SpeechmaticsTTSService.Settings({...}). Settings you leave out keep their defaults.

SettingDefaultDescription
voice"sarah"Voice.
maxRetries5Retries on HTTP 503.

Usage

tts.ts
import { SpeechmaticsTTSService } from "@pipedog/speechmatics/tts";

const tts = new SpeechmaticsTTSService({
  apiKey: process.env.SPEECHMATICS_API_KEY ?? "",
  settings: new SpeechmaticsTTSService.Settings({ voice: "sarah" }),
});

Notes

  • sampleRate is 16000 only. Pass fetch to use your own HTTP client.

Runtimes

RuntimeWorksWhat it needs
Bun✅ yesNothing.
Node.js✅ yesNothing.
Deno✅ yesNothing.
Cloudflare Workers✅ yesNothing.

Generated from pipecat.runtimes and pipecat.compat in packages/speechmatics/package.json: ✅ means the compat smoke test passes on that runtime.

The service uses fetch only.

pipedog is an unofficial community TypeScript port of Pipecat. It is not affiliated with or endorsed by Daily or the Pipecat project.

Portions adapted from the Pipecat documentation, Copyright (c) 2024–2025 Daily, BSD-2-Clause (see apps/docs/LICENSE-pipecat-docs).

On this page