felo-subtitle
TypeScript icon, indicating that this package has built-in type declarations

0.2.3 • Public • Published

目录

1. 背景

TODO: 待完善

2. 简介

TODO: 待完善

具有以下特性:

  • 字幕服务
  • 多语言翻译
  • 实时同步

3. 安装方式

目前,安装方式有以下几种:

3.1. 方式1:通过 npm 安装

通过 npm (或 yarn、pnpm 等包管理器)安装

npm install subtitle-lib

3.2. 方式3:通过<script>标签引入(TODO: 暂不支持)

您可直接从项目的 [发行地址][] 中下载以 .iife.js 作为缀的文件,然后使用如下代码引用 和 使用 subtitle-lib:

  1. 引用 subtitle-lib

    <script src="path/to/package/subtitle-lib.iife.js"></script>
    
  2. 使用全局的 subtitle-lib

    <script>
    // 使用全局的 subtitle-lib
    </script>
    
  3. 本地调试 subtitle-lib

    npm run dev
    // 访问 http://localhost:5173/demo/
    
    // 引入依赖
    import Subtitle, { SubtitleParams, IConnectStateType } from 'subtitle-lib';
    

4. 使用方法

// 加入字幕服务
const start = async () => {
    // log('获取token...');
    const { status, data } = await axios({"Server_URI"});
    if (status !== 200) {    
        // 获取token失败
        throw new Error('get token error ...');
    }
    //  获取token成功
    const { access_token, user_id, app_id } = data;
    // 创建字幕服务对象
    const subtitle = new Subtitle(app_id, 'WEB', true);
    
    // 配置字幕服务参数
    const opts: SubtitleParams = {
      token: 'access_token',
      bizId: '业务ID,每一个业务ID独立',
      userId: '用户唯一ID',
      lang: '输入的语言 「zh/ja/ko/en」',
    };
    // 获取生成字幕的音频媒体流
    const mediaStream: any = await navigator.mediaDevices.getUserMedia({audio: true});
    const audioMediaStreamTrack = mediaStream.getAudioTracks()[0];
    
    // 打开字幕服务
    // 第三个获取token的参数可以传,也可以不传,不传的情况就无法自动刷新token,当token过期时会抛异常
    await subtitle.joinAndStart(opts, audioMediaStreamTrack, async () => {
      const access_token = await request.get();
      return access_token;
    });
    
    // 打开字幕成功,设置接收字幕消息的回调
    subtitle.getTranslation(onMsg);
    
    // 如果需要监听字幕服务的链接状态,可以通过一下方法监听
    subtitle.getConnectState(onConnectStateChange);
};

// 关闭字幕服务
const stop = async () => {
    await subtitle.closeSubtitle();
}

// 接收字幕服务的回调信息(包含字幕信息)
const onMsg = (msg) => {
    // 打印字幕对象
    console.log(JSON.parse(msg.data.transcribeText));
};

// 与字幕服务器的链接状态,根据业务需求选用
const onConnectStateChange = (state : IConnectStateType) => {
    console.log('connectState : ', state);
    // 输出 connected/disconnect/reconnect/connecting
};

详情跳转至详细使用方法

5. API接口文档(TODO: 待完成)

详情跳转至[API接口文档][]

6. 错误代码说明

  • 500:请求超时
  • 1xxx: 请求错误
  • 2xxx: 请求错误
  • 8000: mqtt链接失败
  • 7000: 微软字幕服务创建失败
  • 7001: 微软字幕服务未连接,请检查服务连接
  • 7002: 微软字幕服务推送音频流失败
  • 7003: 微软字幕服务结束音频流推送失败
  • 7004: 微软字幕服务断开服务失败
  • 7005: 微软字幕服务连接服务失败

Readme

Keywords

none

Package Sidebar

Install

npm i felo-subtitle

Weekly Downloads

1

Version

0.2.3

License

MIT

Unpacked Size

4.52 MB

Total Files

45

Last publish

Collaborators

  • felo.me