一个统一的语音服务 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,
}
}
}
{
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'
}
{
googleCredentials: 'path/to/credentials.json',
languageCode: 'zh-CN'
}
工厂类,用于创建和管理不同的语音服务提供商实例。
-
constructor(config)
: 创建工厂实例 -
initialize(providerName)
: 初始化指定的服务提供商 -
getProvider()
: 获取当前的服务提供商实例
所有服务提供商的基类,定义了统一的接口。
-
speechToText(audioFile)
: 将音频文件转换为文字 -
textToSpeech(text, options)
: 将文字转换为语音 -
startRealtimeSTT(options)
: 开始实时语音识别 -
stopRealtimeSTT()
: 停止实时语音识别
浏览器端的语音合成服务。
-
speak(text)
: 播放文字内容 -
pause()
: 暂停播放 -
resume()
: 恢复播放 -
stop()
: 停止播放 -
on(event, callback)
: 注册事件监听器
浏览器端的语音识别服务。
-
start()
: 开始录音识别 -
stop()
: 停止录音识别 -
on(event, callback)
: 注册事件监听器