目录
TODO: 待完善
TODO: 待完善
具有以下特性:
- 字幕服务
- 多语言翻译
- 实时同步
目前,安装方式有以下几种:
通过 npm (或 yarn、pnpm 等包管理器)安装
npm install subtitle-lib
您可直接从项目的 [发行地址][] 中下载以 .iife.js
作为缀的文件,然后使用如下代码引用 和 使用 subtitle-lib:
-
引用 subtitle-lib
<script src="path/to/package/subtitle-lib.iife.js"></script>
-
使用全局的
subtitle-lib
<script> // 使用全局的 subtitle-lib </script>
-
本地调试 subtitle-lib
npm run dev // 访问 http://localhost:5173/demo/
// 引入依赖 import Subtitle, { SubtitleParams, IConnectStateType } from 'subtitle-lib';
// 加入字幕服务
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
};
详情跳转至详细使用方法
详情跳转至[API接口文档][]
- 500:请求超时
- 1xxx: 请求错误
- 2xxx: 请求错误
- 8000: mqtt链接失败
- 7000: 微软字幕服务创建失败
- 7001: 微软字幕服务未连接,请检查服务连接
- 7002: 微软字幕服务推送音频流失败
- 7003: 微软字幕服务结束音频流推送失败
- 7004: 微软字幕服务断开服务失败
- 7005: 微软字幕服务连接服务失败