Univoice

Univoice

统一的 TTS(文字转语音)和 ASR(语音识别)SDK,一套 API 调用多种语音服务提供商。

核心特性

  • 统一 API — 一套接口调用豆包、通义千问、OpenAI、Gemini 等 8 种语音服务
  • 流式支持 — TTS 支持流式输入和输出,适合 LLM 流式输出场景
  • 边发边收 — LLM 流式输出可直接转换为语音,显著降低首字延迟
  • 插件化架构 — 通过 registerTTSProvider / registerASRProvider 轻松扩展新提供商
  • TypeScript 优先 — 完整的类型定义,开发体验友好
  • Tree-Shaking — 按需加载 provider,减少打包体积

适用场景

场景说明
AI 助手语音交互LLM 回复实时转为语音输出
有声书 / 播客生成批量文本转音频文件
客服语音系统语音识别 + TTS 播报
实时语音翻译ASR 识别 → 翻译 → TTS 播放
语音消息应用语音消息转文字 / 文字转语音

快速体验

TTS 文字转语音

import 'univoice/tts/providers';
import { createTTS } from 'univoice';

const tts = createTTS({
  provider: 'doubao',
  appId: process.env.DOUBAO_APP_ID,
  accessToken: process.env.DOUBAO_ACCESS_TOKEN,
  voice: 'zh_female_tianmeixiaoyuan_moon_bigtts',
  format: 'mp3',
});

const response = await tts.synthesize({ text: '你好,世界!' });
// response.audio -> 音频数据
// response.format -> 'mp3'

ASR 语音识别

import 'univoice/asr/providers';
import { createASR } from 'univoice';
import { readFileSync } from 'node:fs';

const asr = createASR({
  provider: 'openai',
  apiKey: process.env.OPENAI_API_KEY,
  model: 'whisper-1',
});

const result = await asr.listen(readFileSync('audio.mp3'));
// result.text -> 识别文本

支持的提供商

TTS(文字转语音)

提供商标识符流式输入非流式流式输出特色
豆包(火山引擎)doubao双向流式 WebSocket,Seed-TTS 模型
通义千问qwenCosyVoice 系列,多音色
通义千问 Realtimeqwen-realtime实时交互模式,超低延迟
MiniMaxminimaxspeech-02/2.6/2.8 多模型
OpenAIopenaitts-1 / mimo-v2-tts
GeminigeminiGoogle 原生 TTS
智谱 GLMglmGLM-TTS 模型
科大讯飞xfyun超拟人 TTS,WebSocket 双向流式

ASR(语音识别)

提供商标识符流式输入非流式流式输出特色
豆包(火山引擎)doubaoSAUC 协议,大模型识别
通义千问qwenParaformer 实时识别
OpenAIopenaiWhisper 模型
MiniMaxminimax---开发中
GeminigeminiGoogle 原生 ASR
智谱 GLMglmGLM-ASR 模型
科大讯飞xfyun流式听写 WebAPI

标记为「-」的功能表示当前版本暂未实现或正在开发中。具体能力矩阵详见音频格式性能分析

下一步

On this page