Package Exports
- @koi-rtc/speech-sdk
- @koi-rtc/speech-sdk/dist/index.esm.js
- @koi-rtc/speech-sdk/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@koi-rtc/speech-sdk) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Speech SDK
一个统一的语音服务 SDK,支持多个主流云服务商的语音识别(ASR)和语音合成(TTS)功能。
特性
- 支持多个主流云服务商
- 微软 Azure 语音服务
- 腾讯云语音服务
- 阿里云智能语音服务
- Google Cloud 语音服务
- 统一的 API 接口
- 支持语音转文字(ASR)和文字转语音(TTS)
- 支持实时语音识别
- 内置缓存机制
- TypeScript 支持
安装
npm install @koi-rtc/speech-sdk
# 或
yarn add @koi-rtc/speech-sdk
快速开始
基础用法
const { SpeechFactory } = require('@koi-rtc/speech-sdk');
async function example() {
// 初始化语音服务
const factory = new SpeechFactory({
key: 'your-api-key',
region: 'your-region'
});
// 选择服务提供商(microsoft/tencent/aliyun/google)
const provider = factory.initialize('microsoft');
// 语音转文字
const text = await provider.speechToText('audio.wav');
console.log('识别结果:', text);
// 文字转语音
const audioBuffer = await provider.textToSpeech('你好,世界!', {
voice: 'zh-CN-XiaoxiaoNeural',
speed: 1.0
});
}
example().catch(console.error);
浏览器端语音服务
const { TTSService, ASRService } = require('speech-sdk');
// 初始化语音合成服务
const tts = new TTSService({
language: 'zh-CN',
pitch: 1,
rate: 1,
volume: 1
});
// 播放语音
tts.speak('你好,世界!');
// 初始化语音识别服务
const asr = new ASRService({
language: 'zh-CN',
continuous: true,
interimResults: true
});
// 开始识别
asr.on('result', (result) => {
console.log('识别结果:', result.transcript);
console.log('是否最终结果:', result.isFinal);
});
asr.start();
配置说明
通用配置
{
// 默认语音服务配置
defaultProvider: 'microsoft',
// 通用配置
common: {
language: 'zh-CN',
sampleRate: 16000,
encoding: 'LINEAR16',
},
// 缓存配置
cache: {
storage: 'memory', // 或 'redis'
ttl: 3600, // 缓存过期时间(秒)
redis: {
host: 'localhost',
port: 6379,
}
}
}
服务商特定配置
微软 Azure
{
key: 'your-subscription-key',
region: 'eastasia',
// 可选配置
language: 'zh-CN',
voice: 'zh-CN-XiaoxiaoNeural'
}
腾讯云
{
secretId: 'your-secret-id',
secretKey: 'your-secret-key',
region: 'ap-guangzhou'
}
阿里云
{
accessKeyId: 'your-access-key-id',
accessKeySecret: 'your-access-key-secret',
endpoint: 'http://nls-meta.cn-shanghai.aliyuncs.com'
}
Google Cloud
{
googleCredentials: 'path/to/credentials.json',
languageCode: 'zh-CN'
}
API 文档
SpeechFactory
工厂类,用于创建和管理不同的语音服务提供商实例。
constructor(config)
: 创建工厂实例initialize(providerName)
: 初始化指定的服务提供商getProvider()
: 获取当前的服务提供商实例
BaseProvider
所有服务提供商的基类,定义了统一的接口。
speechToText(audioFile)
: 将音频文件转换为文字textToSpeech(text, options)
: 将文字转换为语音startRealtimeSTT(options)
: 开始实时语音识别stopRealtimeSTT()
: 停止实时语音识别
TTSService
浏览器端的语音合成服务。
speak(text)
: 播放文字内容pause()
: 暂停播放resume()
: 恢复播放stop()
: 停止播放on(event, callback)
: 注册事件监听器
ASRService
浏览器端的语音识别服务。
start()
: 开始录音识别stop()
: 停止录音识别on(event, callback)
: 注册事件监听器