Vibeleaderboard
Index / tool
Visit github.com
Category
AI Tools
Rank
No. 1406Tools index

Previous survey · No. 1413 ·

Pricing
Open Source
Type
TOOL
Builder
moeru-ai
GitHub
106 stars
Latest release
v0.1.19
Date

About

Self-hosted text-to-speech proxy service, all-in-one for multiple TTS providers, OpenAI-compatible API.

What it does

Unspeech gives applications one speech-generation contract while routing each request to a chosen vendor. A provider-prefixed model selects the destination, and the incoming bearer credential is translated into that vendor’s authentication format. Existing OpenAI clients can point at the service.

Why it's ranked here

The project solves a narrow integration problem with unusually broad provider coverage. Its dispatch layer recognizes ten speech backends and several aliases, while preserving a familiar client contract. The catch is uneven capability: only one backend receives the documented WebSocket streaming path.

What's good

Provider selection stays explicit in the model value, so switching services does not require a new client integration. The code handles speech and voice requests across the same backend set. Structured API errors distinguish bad requests, authentication, permissions, quotas, upstream failures, and availability problems.

Tradeoffs

Streaming works only with Volcengine, despite the wider provider list for ordinary speech and voice requests. Unspeech still depends on external speech vendors and their credentials. The supplied setup builds from source with Go, while the repository text documents no packaged binary, container image, or local synthesis engine.

How to use it well

Use it when one application must compare or switch among hosted speech vendors without rewriting its OpenAI-style client layer. Keep provider credentials in the request workflow and encode the provider in each model choice. Choose another project when the requirement is local speech generation rather than online services.

Technical notes+

README.md documents POST /v1/audio/speech on port 5933, provider-prefixed model values, bearer-header translation, and a source build requiring Go 1.24 or newer. go.mod declares Go 1.25.0 and an Echo HTTP stack with Gorilla WebSocket support. pkg/backend/backend.go dispatches Speech and Voices across OpenAI, StepFun, Deepgram, ElevenLabs, Fish Audio, Koemotion, Microsoft, Volcengine, Alibaba, and MiniMax, including aliases. SpeechStream accepts a JSON text start frame, emits JSON error events, truncates WebSocket close reasons to 123 bytes, and permits only the Volcengine backend. pkg/apierrors/apierrors.go and pkg/jsonapi/error.go implement structured status, code, detail, source, metadata, and caller information. pkg/utils/json_test.go and pkg/utils/string_test.go show Go tests using Testify.

Observed

License
AGPL-3.0
Primary language
Go
Install surface
Source build with the Go toolchain
Interface
HTTP API compatible with OpenAI speech clients, plus WebSocket streaming for Volcengine
Provider coverage
Dispatch code includes ten hosted speech backends
Testing
Go unit tests are present for JSON-path and string-conversion utilities

Read from README.md, go.mod, package.json, pkg/ho/ho.go, pkg/utils/mo.go, pkg/logs/attrs.go, pkg/utils/json.go, pkg/utils/string.go, pkg/jsonapi/error.go, pkg/backend/backend.go, pkg/utils/json_test.go, pkg/apierrors/errors.go, pkg/jsonapi/response.go, pkg/utils/string_test.go, pkg/apierrors/apierrors.go.

What it can do

  • Convert text to speech

    Text stringAudio file

  • Proxy requests to multiple TTS providers

    TTS API requestAudio response from selected provider

  • Provide OpenAI-compatible TTS API

    OpenAI-formatted API requestAudio file in OpenAI response format

  • Self-host TTS service

    Server configurationRunning TTS proxy service

  • Aggregate multiple TTS providers

    Provider configurationsUnified TTS service endpoint

  • Route TTS requests to different providers

    TTS request with provider preferenceAudio from specified TTS provider

Tags

ttstext-to-speechself-hostedopenai-api

Tech Stack

Node.jsGoDockerTypeScript

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.