클래스 | 설명 |
ITMGContext | 주요 API |
ITMGPTT | 음성 메시지 및 음성-텍스트 변환 API |
API | API 설명 |
Init | GME 초기화 |
Poll | 이벤트 콜백 트리거 |
Pause | 시스템 일시 중지 |
Resume | 시스템 복구 |
Uninit | GME 초기화 취소 |
using GME;
//class ITMGContextpublic abstract int Init(string sdkAppID, string openID);
매개변수 | 유형 | 설명 |
sdkAppId | string | |
openID | string | openID는 Int64 유형만 가능하며 string으로 변환되어 전달됩니다. 해당 규칙을 사용자 정의할 수 있으며 App에서 고유해야 합니다. Openid를 문자열로 전달하려면 Submit Ticket하여 신청하십시오. |
반환 값 | 처리 |
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()
API | API 설명 |
GenAuthBuffer | 로컬 인증 키 생성 |
ApplyPTTAuthbuffer | 인증 초기화 |
SetMaxMessageLength | 음성 메시지의 최대 길이 지정 |
QAVAuthBuffer GenAuthBuffer(int appId, string roomId, string openId, string key)
매개변수 | 유형 | 설명 |
appId | int | Tencent Cloud 콘솔의 AppId. |
roomId | string | null 또는 빈 문자열 입력. |
openId | string | Init 시 OpenId와 동일한 사용자 ID. |
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);
API | API 설명 |
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 | 90일 동안 보관되는 녹음 파일의 백엔드 url 주소 |
ITMG_MAIN_EVNET_TYPE_PTT_STREAMINGRECOGNITION_IS_RUNNING
메시지 수신 시 file_id는 비어 있습니다.에러 코드 | 설명 | 처리 방법 |
32775 | 스트리밍 음성-텍스트 변환에 실패했지만 녹음은 성공하였습니다 | UploadRecordedFile API를 호출하여 녹음 파일을 업로드한 다음 SpeechToText API를 호출하여 음성을 텍스트로 변환합니다 |
32777 | 스트리밍 음성-텍스트 변환에 실패했지만, 녹음 및 업로드는 성공하였습니다 | 반환된 메시지에는 업로드 성공된 백엔드 url이 포함되어 있으며, SpeechToText API를 호출하여 음성을 텍스트로 변환합니다 |
32786 | 스트리밍 음성-텍스트 변환 실패입니다 | 스트리밍 녹화 상태입니다. 스트리밍 녹화 API의 실행 결과가 반환될 때까지 기다려주십시오. |
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("녹음 중");}}
API | API 설명 |
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 | 매개변수가 비어 있습니다 | 코드의 API 매개변수가 올바른지 확인합니다 |
4098 | 초기화 오류입니다 | 장치가 사용 중인지, 권한이 정상인지, 초기화가 정상인지 확인합니다 |
4099 | 녹음이 진행 중입니다 | SDK 기록 기능이 적시에 사용되는지 확인합니다 |
4100 | 오디오 데이터가 캡처되지 않았습니다 | 마이크가 제대로 작동하는지 확인합니다 |
4101 | 녹음 중 파일 액세스 중 오류가 발생했습니다 | 파일의 존재와 파일 경로의 유효성을 확인합니다 |
4102 | 마이크가 인증되지 않았습니다 | SDK를 사용하기 위해서는 마이크 권한이 필요하며, 권한을 추가하려면 해당 엔진 또는 플랫폼에 대한 SDK 프로젝트 구성 문서를 참고하십시오 |
4103 | 녹음 시간이 너무 짧습니다 | 녹음 시간은 ms 단위이어야 합니다. 매개변수가 올바른지 확인합니다. 녹음 시간이 1,000ms 이상이어야 녹음에 성공합니다. |
4104 | 녹음 작업이 시작되지 않았습니다 | 녹음 시작 API가 호출되었는지 확인합니다 |
//이벤트 수신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();
API | API 설명 |
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 API가 호출되었는지 또는 입력 매개변수가 비어 있는지 확인합니다 |
//이벤트 수신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 | 네트워크 스토리지 시스템 예외입니다 | 서버가 오디오 파일을 가져오지 못했습니다. API 매개변수 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 | 매개변수가 비어 있습니다 | 코드의 API 매개변수가 올바른지 확인합니다 |
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);
API | API 설명 |
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)
매개변수 | 유형 | 설명 |
fileID | String | 90일 동안 서버에 보관되는 오디오 파일의 url |
speechLanguage | String | |
translatelanguage | String |
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 | 90일 동안 서버에 보관되는 녹음 파일의 url |
result | string | 변환된 텍스트 |
에러 코드 값 | 원인 | 솔루션 제안 |
32769 | 내부 오류입니다 | 로그를 분석하고 백엔드에서 클라이언트로 반환된 실제 오류 코드를 얻은 다음 백엔드 담당자에게 도움을 요청합니다 |
32770 | 네트워크에 실패했습니다 | 장치가 인터넷에 액세스할 수 있는지 확인합니다 |
32772 | 반환된 패킷을 디코딩하지 못했습니다 | 로그를 분석하고 백엔드에서 클라이언트로 반환된 실제 오류 코드를 얻은 다음 백엔드 담당자에게 도움을 요청합니다 |
32774 | appinfo가 설정되지 않았습니다 | 인증키가 맞는지, 음성 메시지 및 음성 변환 기능이 초기화 되었는지 확인합니다 |
32776 | authbuffer 확인에 실패했습니다 | authbuffer가 올바른지 확인합니다 |
32784 | 잘못된 음성-텍스트 변환 매개변수입니다 | 코드의 API 매개변수 fileid가 비어 있는지 확인합니다 |
32785 | 음성-텍스트 변환 및 번역에서 오류가 반환되었습니다 | 음성 메시지 백엔드 오류입니다. 백엔드에서 클라이언트로 반환된 실제 오류 코드를 받고 백엔드 담당자에게 도움을 요청하십시오. |
32787 | 음성-텍스트 변환에 성공했지만 텍스트 번역 서비스가 활성화되지 않았습니다 | 콘솔에서 텍스트 번역 서비스를 활성화해야 합니다 |
32788 | 음성-텍스트 변환에 성공했지만 텍스트 번역 서비스의 언어 매개변수가 잘못되었습니다 | 전달된 매개변수를 확인합니다 |
//이벤트 수신ITMGContext.GetInstance().GetPttCtrl().OnSpeechToTextComplete += new QAVSpeechToTextCallback(OnSpeechToTextComplete);//수신한 이벤트 처리void OnSpeechToTextComplete(int code, string fileid, string result){//콜백 인식}
API | API 설명 |
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);
문제 해결에 도움이 되었나요?