类 | 含义 |
ITMGContext | 核心接口 |
ITMGPTT | 语音消息及转文本相关接口 |
接口 | 接口含义 |
Init | 初始化 GME |
Poll | 触发事件回调 |
Pause | 系统暂停 |
Resume | 系统恢复 |
Uninit | 反初始化 GME |
using GME;
//class ITMGContextpublic abstract int Init(string sdkAppID, string openID);
返回值 | 处理 |
QAVError.OK= 0 | 初始化 SDK 成功 |
AV_ERR_SDK_NOT_FULL_UPDATE=7015 | 检查 SDK 文件是否完整,建议删除后重新导入 SDK |
int ret = ITMGContext.GetInstance().Init(sdkAppId, openID);//通过返回值判断是否初始化成功if (ret != QAVError.OK){Debug.Log("SDK初始化失败:"+ret);return;}
ITMGContext public abstract int Poll();
public void Update(){ITMGContext.GetInstance().Poll();}
ITMGContext public abstract int Pause()
ITMGContext public abstract int Resume()
ITMGContext public abstract int Uninit()
接口 | 接口含义 |
GenAuthBuffer | 生成本地鉴权 |
ApplyPTTAuthbuffer | 鉴权初始化 |
SetMaxMessageLength | 限制最大语音信息时长 |
QAVAuthBuffer GenAuthBuffer(int appId, string roomId, string openId, string key)
参数 | 类型 | 含义 |
appId | int | 来自腾讯云控制台的 AppId 号码 |
roomId | string | 填 null 或者空字符串 |
openId | string | 用户标识。与 Init 时候的 OpenId 相同 |
key | string |
ITMGPTT int ApplyPTTAuthbuffer (byte[] authBuffer)
参数 | 类型 | 含义 |
authBuffer | byte[] | 鉴权 |
UserConfig.SetAppID(transform.Find ("appId").GetComponent<InputField> ().text);UserConfig.SetUserID(transform.Find ("userId").GetComponent<InputField> ().text);UserConfig.SetAuthKey(transform.Find("authKey").GetComponent<InputField>().text);byte[] authBuffer = UserConfig.GetAuthBuffer(UserConfig.GetAppID(), UserConfig.GetUserID(), null,UserConfig.GetAuthKey());ITMGContext.GetInstance ().GetPttCtrl ().ApplyPTTAuthbuffer(authBuffer);
ITMGPTT int SetMaxMessageLength(int msTime)
参数 | 类型 | 含义 |
msTime | int | 语音时长,单位 ms,区间为 1000 < msTime < = 58000 |
ITMGContext.GetInstance().GetPttCtrl().SetMaxMessageLength(58000);
接口 | 接口含义 |
StartRecordingWithStreamingRecognition | 启动流式录音 |
StopRecording | 停止录音 |
ITMGPTT int StartRecordingWithStreamingRecognition(string filePath)ITMGPTT int StartRecordingWithStreamingRecognition(string filePath, string speechLanguage,string translateLanguage)
参数 | 类型 | 含义 |
filePath | String | 存放的语音路径 |
speechLanguage | String | |
translateLanguage | String | 填入与 speechLanguage 相同的值 |
string recordPath = Application.persistentDataPath + string.Format("/{0}.silk", sUid++);int ret = ITMGContext.GetInstance().GetPttCtrl().StartRecordingWithStreamingRecognition(recordPath, "cmn-Hans-CN","cmn-Hans-CN");
OnStreamingSpeechComplete
是在停止录制并完成识别后才返回文字,相当于一段话说完才会返回识别的文字。OnStreamingSpeechisRunning
是在录音过程中就会实时返回识别到的文字,相当于边说话边返回识别到的文字。消息名称 | 含义 |
result | 用于判断流式语音识别是否成功的返回码 |
text | 语音转文字识别的文本 |
file_path | 录音存放的本地地址 |
file_id | 录音在后台的 url 地址,录音在服务器存放90天 |
ITMG_MAIN_EVNET_TYPE_PTT_STREAMINGRECOGNITION_IS_RUNNING
消息时,file_id 为空。错误码 | 含义 | 处理方式 |
32775 | 流式语音转文本失败,但是录音成功 | 调用 UploadRecordedFile 接口上传录音,再调用 SpeechToText 接口进行语音转文字操作 |
32777 | 流式语音转文本失败,但是录音成功,上传成功 | 返回的信息中有上传成功的后台 url 地址,调用 SpeechToText 接口进行语音转文字操作 |
32786 | 流式语音转文本失败 | 在流式录制状态当中,请等待流式录制接口执行结果返回 |
32787 | 转文本成功,文本翻译服务未开通 | 需要在控制台开通文本翻译服务 |
32788 | 转文本成功,文本翻译语言参数不支持 | 重新检查传入参数 |
//对事件进行监听:ITMGContext.GetInstance().GetPttCtrl().OnStreamingSpeechComplete +=new QAVStreamingRecognitionCallback (OnStreamingSpeechComplete);ITMGContext.GetInstance().GetPttCtrl().OnStreamingSpeechisRunning += new QAVStreamingRecognitionCallback (OnStreamingRecisRunning);//监听处理:void OnStreamingSpeechComplete(int code, string fileid, string filepath, string result){//启动流式语音识别的回调}void OnStreamingRecisRunning(int code, string fileid, string filePath, string result){if (code == 0){setBtnText(mStreamBtn, "流式");InputField field = transform.Find("recordFilePath").GetComponent<InputField>();field.text = filePath;field = transform.Find("downloadUrl").GetComponent<InputField>();field.text = "Stream is Running";field = transform.Find("convertTextResult").GetComponent<InputField>();field.text = result;showWarningText("录制中");}}
接口 | 接口含义 |
StartRecording | 启动录音 |
PauseRecording | 暂停录音 |
ResumeRecording | 恢复录音 |
StopRecording | 停止录音 |
CancelRecording | 取消录音 |
ITMGPTT int StartRecording(string fileDir)
参数 | 类型 | 含义 |
fileDir | string | 存放的语音路径 |
string recordPath = Application.persistentDataPath + string.Format ("/{0}.silk", sUid++);int ret = ITMGContext.GetInstance().GetPttCtrl().StartRecording(recordPath);
ITMGPTT int StopRecording()
ITMGContext.GetInstance().GetPttCtrl().StopRecording();
public delegate void QAVRecordFileCompleteCallback(int code, string filepath);public abstract event QAVRecordFileCompleteCallback OnRecordFileComplete;
参数 | 类型 | 含义 |
code | string | 当 code 为 0 时,录制完成 |
filepath | string | 录制的存放地址,必须是可以访问到的路径,不可将 fileid 作为路径 |
错误码值 | 原因 | 建议方案 |
4097 | 参数为空 | 检查代码中接口参数是否正确 |
4098 | 初始化错误 | 检查设备是否被占用,或者权限是否正常,是否初始化正常 |
4099 | 正在录制中 | 确保在正确的时机使用 SDK 录制功能 |
4100 | 没有采集到音频数据 | 检查麦克风设备是否正常 |
4101 | 录音时,录制文件访问错误 | 确保文件存在,文件路径的合法性 |
4102 | 麦克风未授权错误 | 使用 SDK 需要麦克风权限,添加权限请参考对应引擎或平台的 SDK 工程配置文档 |
4103 | 录音时间太短错误 | 首先,限制录音时长的单位为毫秒,检查参数是否正确;其次,录音时长要1000毫秒以上才能成功录制 |
4104 | 没有启动录音操作 | 检查是否已经调用启动录音接口 |
//对事件进行监听ITMGContext.GetInstance().GetPttCtrl().OnRecordFileComplete += new QAVRecordFileCompleteCallback (OnRecordFileComplete);//监听处理void OnRecordFileComplete(int code, string filepath){//启动录音的回调}
ITMGPTT int PauseRecording()
ITMGContext.GetInstance().GetPttCtrl().PauseRecording();
ITMGPTT int ResumeRecording()
ITMGContext.GetInstance().GetPttCtrl().ResumeRecording();
ITMGPTT int CancelRecording()
ITMGContext.GetInstance().GetPttCtrl().CancelRecording();
接口 | 接口含义 |
UploadRecordedFile | 上传语音文件 |
DownloadRecordedFile | 下载语音文件 |
PlayRecordedFile | 播放语音 |
StopPlayFile | 停止播放语音 |
GetFileSize | 语音文件的大小 |
GetVoiceFileDuration | 语音文件的时长 |
ITMGPTT int UploadRecordedFile (string filePath)
参数 | 类型 | 含义 |
filePath | String | 上传的语音路径,此路径为本地路径 |
ITMGContext.GetInstance().GetPttCtrl().UploadRecordedFile(filePath);
public delegate void QAVUploadFileCompleteCallback(int code, string filepath, string fileid);public abstract event QAVUploadFileCompleteCallback OnUploadFileComplete;
参数 | 类型 | 含义 |
code | int | 当 code 为0时,录制完成 |
filepath | string | 录制的存放地址 |
fileid | string | 文件的 url 路径 |
错误码值 | 原因 | 建议方案 |
8193 | 上传文件时,文件访问错误 | 确保文件存在,文件路径的合法性 |
8194 | 签名校验失败错误 | 检查鉴权密钥是否正确,检查是否有初始化离线语音 |
8195 | 网络错误 | 检查设备网络是否可以正常访问外网环境 |
8196 | 获取上传参数过程中网络失败 | 检查鉴权是否正确,检查设备网络是否可以正常访问外网环境 |
8197 | 获取上传参数过程中回包数据为空 | 检查鉴权是否正确,检查设备网络是否可以正常访问外网环境 |
8198 | 获取上传参数过程中回包解包失败 | 检查鉴权是否正确,检查设备网络是否可以正常访问外网环境 |
8200 | 没有设置 appinfo | 检查 apply 接口是否有调用,或者入参是否为空 |
//对事件进行监听ITMGContext.GetInstance().GetPttCtrl().OnUploadFileComplete +=new QAVUploadFileCompleteCallback (OnUploadFileComplete);//监听处理void OnUploadFileComplete(int code, string filepath, string fileid){//上传语音完成的回调}
ITMGPTT DownloadRecordedFile (string fileID, string downloadFilePath)
参数 | 类型 | 含义 |
fileID | String | 文件的 url 路径 |
downloadFilePath | String | 文件的本地保存路径,必须是可以访问到的路径,不可将 fileid 作为路径 |
ITMGContext.GetInstance().GetPttCtrl().DownloadRecordedFile(fileId, filePath);
public delegate void QAVDownloadFileCompleteCallback(int code, string filepath, string fileid);public abstract event QAVDownloadFileCompleteCallback OnDownloadFileComplete;
参数 | 类型 | 含义 |
code | int | 当 code 为0时,录制完成 |
filepath | string | 录制的存放地址 |
fileid | string | 文件的 url 路径,录音在服务器存放 90 天 |
错误码值 | 原因 | 建议方案 |
12289 | 下载文件时,文件访问错误 | 检查文件路径是否合法 |
12290 | 签名校验失败 | 检查鉴权密钥是否正确,检查是否有初始化离线语音 |
12291 | 网络存储系统异常 | 服务器获取语音文件失败,检查接口参数 fileid 是否正确,检查网络是否正常,检查 COS 文件存不存在 |
12292 | 服务器文件系统错误 | 检查设备网络是否可以正常访问外网环境,检查服务器上是否有此文件 |
12293 | 获取下载参数过程中,HTTP 网络失败 | 检查设备网络是否可以正常访问外网环境 |
12294 | 获取下载参数过程中,回包数据为空 | 检查设备网络是否可以正常访问外网环境 |
12295 | 获取下载参数过程中,回包解包失败 | 检查设备网络是否可以正常访问外网环境 |
12297 | 没有设置 appinfo | 检查鉴权密钥是否正确,检查是否有初始化离线语音 |
//对事件进行监听ITMGContext.GetInstance().GetPttCtrl().OnDownloadFileComplete +=new QAVDownloadFileCompleteCallback(OnDownloadFileComplete);//监听处理void OnDownloadFileComplete(int code, string filepath, string fileid){//下载语音文件完成回调}
ITMGPTT PlayRecordedFile(string filePath)ITMGPTT PlayRecordedFile(string filePath,int voiceType);
参数 | 类型 | 含义 |
filePath | string | 本地语音文件的路径 |
voicetype | int |
错误码值 | 原因 | 建议方案 |
20485 | 播放未开始 | 确保文件存在,文件路径的合法性 |
ITMGContext.GetInstance().GetPttCtrl().PlayRecordedFile(filePath);
public delegate void QAVPlayFileCompleteCallback(int code, string filepath);public abstract event QAVPlayFileCompleteCallback OnPlayFileComplete;
参数 | 类型 | 含义 |
code | int | 当 code 为0时,播放完成 |
filepath | string | 录制的存放地址 |
错误码值 | 原因 | 建议方案 |
20481 | 初始化错误 | 检查设备是否被占用,或者权限是否正常,是否初始化正常 |
20482 | 正在播放中,试图打断并播放下一个失败了(正常是可以打断的) | 检查代码逻辑是否正确 |
20483 | 参数为空 | 检查代码中接口参数是否正确 |
20484 | 内部错误 | 初始化播放器错误,解码失败等问题产生此错误码,需要结合日志定位问题 |
//对事件进行监听:ITMGContext.GetInstance().GetPttCtrl().OnPlayFileComplete +=new QAVPlayFileCompleteCallback(OnPlayFileComplete);//监听处理:void OnPlayFileComplete(int code, string filepath){//播放语音的回调}
ITMGPTT int StopPlayFile()
ITMGContext.GetInstance().GetPttCtrl().StopPlayFile();
ITMGPTT GetFileSize(string filePath)
参数 | 类型 | 含义 |
filePath | String | 语音文件的路径,此路径为本地路径 |
int fileSize = ITMGContext.GetInstance().GetPttCtrl().GetFileSize(filepath);
ITMGPTT int GetVoiceFileDuration(string filePath)
参数 | 类型 | 含义 |
filePath | String | 语音文件的路径,此路径为本地路径 |
int fileDuration = ITMGContext.GetInstance().GetPttCtrl().GetVoiceFileDuration(filepath);
接口 | 接口含义 |
SpeechToText | 语音识别成文字 |
ITMGPTT int SpeechToText(String fileID)
参数 | 类型 | 含义 |
fileID | String | 语音文件 url |
ITMGContext.GetInstance().GetPttCtrl().SpeechToText(fileID);
ITMGPTT int SpeechToText(String fileID,String speechLanguage)ITMGPTT int SpeechToText(String fileID,String speechLanguage,String translatelanguage)
ITMGContext.GetInstance().GetPttCtrl().SpeechToText(fileID,"cmn-Hans-CN","cmn-Hans-CN");
public delegate void QAVSpeechToTextCallback(int code, string fileid, string result);public abstract event QAVSpeechToTextCallback OnSpeechToTextComplete;
参数 | 类型 | 含义 |
code | int | 当 code 为0时,录制完成 |
fileid | string | 语音文件 url,录音在服务器存放 90 天 |
result | string | 转换的文本结果 |
错误码值 | 原因 | 建议方案 |
32769 | 内部错误 | 分析日志,获取后台返回给客户端的真正错误码,并联系后台同事协助解决 |
32770 | 网络失败 | 检查设备网络是否可以正常访问外网环境 |
32772 | 回包解包失败 | 分析日志,获取后台返回给客户端的真正错误码,并联系后台同事协助解决 |
32774 | 没有设置 appinfo | 检查鉴权密钥是否正确,检查是否有初始化离线语音 |
32776 | authbuffer 校验失败 | 检查 authbuffer 是否正确 |
32784 | 语音转文本参数错误 | 检查代码中接口参数 fileid 是否为空 |
32785 | 语音转文本翻译返回错误 | 离线语音后台错误,请分析日志,获取后台返回给客户端的真正错误码,并联系后台同事协助解决 |
32787 | 转文本成功,文本翻译服务未开通 | 需要在控制台开通文本翻译服务 |
32788 | 转文本成功,文本翻译语言参数不支持 | 重新检查传入参数 |
//对事件进行监听ITMGContext.GetInstance().GetPttCtrl().OnSpeechToTextComplete += new QAVSpeechToTextCallback(OnSpeechToTextComplete);//监听处理void OnSpeechToTextComplete(int code, string fileid, string result){//识别回调}
接口 | 接口含义 |
GetMicLevel | 获取实时麦克风音量 |
SetMicVolume | 设置录制音量 |
GetMicVolume | 获取录制音量 |
GetSpeakerLevel | 获取实时扬声器音量 |
SetSpeakerVolume | 设置播放音量 |
GetSpeakerVolume | 获取播放音量 |
ITMGPTT int GetMicLevel()
ITMGContext.GetInstance().GetPttCtrl().GetMicLevel();
ITMGPTT int SetMicVolume(int vol)
ITMGContext.GetInstance().GetPttCtrl().SetMicVolume(100);
ITMGPTT int GetMicVolume()
ITMGContext.GetInstance().GetPttCtrl().GetMicVolume();
ITMGPTT int GetSpeakerLevel()
ITMGContext.GetInstance().GetPttCtrl().GetSpeakerLevel();
ITMGPTT int SetSpeakerVolume(int vol)
ITMGContext.GetInstance().GetPttCtrl().SetSpeakerVolume(100);
ITMGPTT int GetSpeakerVolume()
ITMGContext.GetInstance().GetPttCtrl().GetSpeakerVolume();
ITMGContext abstract string GetSDKVersion()
ITMGContext.GetInstance().GetSDKVersion();
ITMGContext SetLogLevel(ITMG_LOG_LEVEL levelWrite, ITMG_LOG_LEVEL levelPrint)
参数 | 类型 | 含义 |
levelWrite | ITMG_LOG_LEVEL | 设置写入日志的等级,TMG_LOG_LEVEL_NONE 表示不写入,默认为 TMG_LOG_LEVEL_INFO |
levelPrint | ITMG_LOG_LEVEL | 设置打印日志的等级,TMG_LOG_LEVEL_NONE 表示不打印,默认为 TMG_LOG_LEVEL_ERROR |
ITMG_LOG_LEVEL | 含义 |
TMG_LOG_LEVEL_NONE | 不打印日志 |
TMG_LOG_LEVEL_ERROR | 打印错误日志(默认) |
TMG_LOG_LEVEL_INFO | 打印提示日志 |
TMG_LOG_LEVEL_DEBUG | 打印开发调试日志 |
TMG_LOG_LEVEL_VERBOSE | 打印高频日志 |
ITMGContext.GetInstance().SetLogLevel(TMG_LOG_LEVEL_INFO,TMG_LOG_LEVEL_INFO);
平台 | 路径 |
Windows | %appdata%\\Tencent\\GME\\ProcessName |
iOS | Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Documents |
Android | /sdcard/Android/data/xxx.xxx.xxx/files |
Mac | /Users/username/Library/Containers/xxx.xxx.xxx/Data/Documents |
ITMGContext SetLogPath(string logDir)
参数 | 类型 | 含义 |
logDir | String | 路径 |
ITMGContext.GetInstance().SetLogPath(path);
本页内容是否解决了您的问题?