Ohos

更新时间:2025-06-18 06:23:48

实时字幕功能为线上会议、在线教育等场景提供实时的语音转文字服务,这项功能可以帮助参会者更好的理解会议内容。DingRTC为您提供了实时字幕的功能。通过阅读本文,您可以了解Ohos端集成实时字幕能力的方法。

一、集成说明

请集成3.8.0及以上版本的SDK。

二、实现字幕基本功能

1)在Ohos端使用字幕功能前,业务服务端需对接完智能纪要功能,并通过StartCloudNote接口启动。

2)按照“快速入门”部分的说明,完成引擎的创建、加入频道、发布和订阅音视频流。

3)获取字幕管理器

let subtitleManager = dingrtc.getSubtitleManager();

4)设置发言语言类型

subtitleManager.setCurrentSpeakLanguage("zh");

5)设置翻译语言列表

let languageList:string[] = ["source","zh"];
subtitleManager.setCurrentTranslateLanguages(languageList);

6)设置字幕监听器

class ChatSubtitleEventListener extends DingRtcSubtitleManagerListener {

  onLanguageListsUpdated(): void {
    // 有语言列表有更新!
  }

  onSubtitleServiceStatusChanged(status: DingRtcConstants.RtcSubtitleStatus): void {
    // RtcSubtitleStatus.OPEN 字幕服务状态:开启时可用
  }


  onSubtitleMessage(message: DingRtcConstants.RtcSubtitleMessage): void {
    // 处理收到的字幕消息
  }
}
subtitleManager.setSubtitleManagerEventListener(new ChatSubtitleEventListener());

7)开启字幕

subtitleManager.enableSubtitle(true);

三、Ohos接口说明

1)字幕管理器

import {DingRtcSubtitleManagerListener} from './DingRtcSubtitleManagerListener'


export interface DingRtcSubtitleManager {

  /**
   * @since 3.8
   * @brief 设置字幕服务状态更新回调。
   * @param listener 字幕服务状态更新回调。
   */
  setSubtitleManagerEventListener(listener: DingRtcSubtitleManagerListener): void;

  /**
   * @since 3.8
   * @brief 启用字幕服务。
   * @param enable 是否启用字幕服务。
   * @return
   * - 0:成功;
   * - <0:失败。
   */
  enableSubtitle(enable: boolean): number;

  /**
   * @since 3.8
   * @brief 获取支持的发言语言列表。
   * @return 支持的发言语言列表。
   */
  getSupportedSpeakLanguages(): Array<string>;

  /**
   * @since 3.8
   * @brief 设置当前发言语言。
   * @param language 当前发言语言。
   * @return
   * - 0:成功;
   * - <0:失败。
   */
  setCurrentSpeakLanguage(language: string): number;

  /**
   * @since 3.8
   * @brief 获取支持的翻译语言列表。
   * @return 支持的翻译语言列表。
   */
  getSupportedTranslateLanguages(): Array<string>;

  /**
   * @since 3.8
   * @brief 设置当前翻译语言列表。
   * @param languages 当前翻译类型。
   * @return
   * - 0:成功;
   * - <0:失败。
   */
  setCurrentTranslateLanguages(languages: Array<string>): number;

}

2)字幕监听器

import {DingRtcConstants} from './DingRtcConstants';

export abstract class DingRtcSubtitleManagerListener {

  /**
   * @since 3.8
   * @brief 语言列表更新回调通知。
   */
  onLanguageListsUpdated(): void {};

  /**
   * @since 3.8
   * @brief 字幕服务状态更新回调通知。
   * @param status 字幕服务状态。
   */
  onSubtitleServiceStatusChanged(status: DingRtcConstants.RtcSubtitleStatus): void {};

  /**
   * @since 3.8
   * @brief 字幕消息回调通知。
   * @param message 字幕消息。
   */
  onSubtitleMessage(message: DingRtcConstants.RtcSubtitleMessage): void {};

}

3)相关数据类

  /**
   * @ingroup OHOS_DingRtcDef
   * @since 3.8.0
   * @brief 字幕服务状态。
   */
  export const enum RtcSubtitleStatus {
    /**
     * 字幕服务开启。
     */
    OPEN = 0,
    /**
     * 字幕服务关闭。
     */
    CLOSE = 1,
    /**
     * 字幕服务出错。
     */
    ERROR = 2
  }

  /**
   * @ingroup OHOS_DingRtcDef
   * @since 3.8.0
   * @brief 字幕消息。
   */
  export interface RtcSubtitleMessage {
    /** 字幕用户ID。 */
    userId: string;
    /** 字幕内容。 */
    subtitle: string;
    /** 字幕句子序列号。 */
    sentenceIndex: number;
    /** 字幕句子结束标识。 */
    sentenceEnd: boolean;
    /** 翻译字幕标识。 */
    translate: boolean;
    /** 字幕语言类型。 */
    language: string;
    /** 字幕句子开始时间。 */
    beginTime: number;
    /** 字幕句子结束时间。 */
    endTime: number;
  }
  • 本页导读
  • 一、集成说明
  • 二、实现字幕基本功能
  • 三、Ohos接口说明