npm package: @koi-rtc/speech-sdk
Description: 统一的语音服务SDK，支持多个云服务商的ASR和TTS服务
Author: tdk
Latest version: 1.0.3

# Speech SDK

一个统一的语音服务 SDK，支持多个主流云服务商的语音识别（ASR）和语音合成（TTS）功能。

## 特性

- 支持多个主流云服务商
  - 微软 Azure 语音服务
  - 腾讯云语音服务
  - 阿里云智能语音服务
  - Google Cloud 语音服务
- 统一的 API 接口
- 支持语音转文字（ASR）和文字转语音（TTS）
- 支持实时语音识别
- 内置缓存机制
- TypeScript 支持

## 安装

```bash
npm install @koi-rtc/speech-sdk
# 或
yarn add @koi-rtc/speech-sdk
```

## 快速开始

### 基础用法

```javascript
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);
```

### 浏览器端语音服务

```javascript
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();
```

## 配置说明

### 通用配置

```javascript
{
  // 默认语音服务配置
  defaultProvider: 'microsoft',
  
  // 通用配置
  common: {
    language: 'zh-CN',
    sampleRate: 16000,
    encoding: 'LINEAR16',
  },
  
  // 缓存配置
  cache: {
    storage: 'memory', // 或 'redis'
    ttl: 3600, // 缓存过期时间（秒）
    redis: {
      host: 'localhost',
      port: 6379,
    }
  }
}
```

### 服务商特定配置

#### 微软 Azure

```javascript
{
  key: 'your-subscription-key',
  region: 'eastasia',
  // 可选配置
  language: 'zh-CN',
  voice: 'zh-CN-XiaoxiaoNeural'
}
```

#### 腾讯云

```javascript
{
  secretId: 'your-secret-id',
  secretKey: 'your-secret-key',
  region: 'ap-guangzhou'
}
```

#### 阿里云

```javascript
{
  accessKeyId: 'your-access-key-id',
  accessKeySecret: 'your-access-key-secret',
  endpoint: 'http://nls-meta.cn-shanghai.aliyuncs.com'
}
```

#### Google Cloud

```javascript
{
  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)`: 注册事件监听器

```