语音转文字
本文主要介绍如何使用 IMKit SDK 将语音消息的音频内容转为文本。
准备工作
在开始之前,请确保 SDK 版本 ≥ 5.22.0,并已在融云控制台开启语音转文字功能。
提示
此功能自 5.22.0 版本起支持,仅适用于 5.22.0 及之后的语音消息。高清语音要求采样率为 8000Hz 或 16000Hz,声道为 1,格式为 aac
,且时长不超过 60 秒。历史语音消息暂不支持该功能。
效果展示





语音转文字简介
IMKit SDK 支持录制最长 60 秒的语音文件。用户进入聊天界面后,可长按消息列表中的语音消息气泡,在弹出的菜单中点击转文字,调用 IMLib SDK 将语音消息转换为文本并展示。SDK 会记录语音转文本的可见性状态,下次进入会话时,根据可见性控制文字 UI 的展示。
提示
未开启语音转文本功能、未发送成功或转换中的消息,长按菜单中不会显示转文字选项。
组件关系图
语音转文本相关类
类名 | 用途 | 描述 |
---|---|---|
RCSTTContentView | 语音转文本内容视图 | 展示语音转文本的各种状态。 |
RCSTTDetailView | 转换成功后的文本视图 | 展示转换后的文本内容。 |
RCSTTFailureView | 转换失败视图 | 展示转换请求失败后的状态。 |
RCDotLoadingView | 转换中视图 | 展示请求发送成功后的加载状态。 |
RCSTTContentViewModel | 语音转文本核心类 | 负责发起请求、文本高度计算,通知 RCSTTContentView 刷新高度和内容。 |
RCSpeechToTextModel | 语音转文本数据模型 | 记录当前语音转文本状态。 |
RCSTTObserverContext | 语音转文本监听上下文 | 统一处理所有语音转文本请求,发起请求前注册监听,收到回调后移除监听。 |
以下为类图:
RCSpeechToTextModel
为 IMKit SDK 用于记录当前语音转文本状态的数据模型。下表为语音转文字数据模型的主要属性,完整属性请参考 API 文档。
RCSpeechToTextModel
对象属性如下:
属性名 | 类型 | 描述 |
---|---|---|
status | RCSpeechToTextStatus | 转换状态。 |
sttInfo | RCSpeechToTextInfo | 对应数据库中的 sttInfo 。 |
isVisible | BOOL | sttInfo 视图是否可见,默认 NO。 |
提示
- 发起转换请求后,数据库中默认的
RCSpeechToTextInfo
对象属性isVisible
为 YES。
语音转文字工作流程
RCSTTContentViewModel
通过 RCSTTContentViewModelDelegate
代理与 RCSTTContentView
绑定。当内部 RCSpeechToTextModel
状态发生变化时,通过代理通知 RCSTTContentView
更新 UI。