JSPM

@koi-rtc/speech-sdk

1.0.3
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 5
    • Score
      100M100P100Q26393F
    • License MIT

    统一的语音服务SDK,支持多个云服务商的ASR和TTS服务

    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): 注册事件监听器