메인 콘텐츠로 건너뛰기

s 명령어 패킷/s 명령어 응답 패킷

s 명령어 패킷과 s 명령어 응답 패킷은 쌍을 이룹니다. s 명령어로 음성 데이터 전송 시작을 서버에 통지하면 서버는 s 명령어 응답 패킷을 반환합니다.

s 명령어 응답 패킷이 "s" 한 글자인 경우 성공입니다. 이어서 p 명령어 패킷으로 음성 데이터 공급을 시작할 수 있습니다. 음성 데이터 전송이 모두 끝나면 e 명령어 패킷으로 전송 종료를 통지하지만, 그 후에도 연결이 유지되어 있다면 다시 s 명령어 패킷부터 재개할 수 있습니다.

s 명령어 패킷

음성 데이터 전송을 시작합니다. 전송 시작을 통지하는 것 외에도 전송할 음성의 포맷과 사용하고 싶은 음성 인식 엔진(연결 엔진 이름), 인증 정보(APPKEY) 및 기타 파라미터를 전송해야 합니다.

형식

타입 TEXT

s <audio_format> <grammar_file_names>
s <audio_format> <grammar_file_names> <key>=<value> ...

s 및 각 파라미터 블록의 구분 문자는 반각 공백입니다. 다음은 각 파라미터의 세부 사항에 대한 설명입니다.

<audio_format>

전송할 음성 포맷을 지정합니다. 이 파라미터는 필수입니다. 지정할 수 있는 포맷 이름에 대해서는 이용 가이드의 음성 포맷에 대하여를 참조하십시오.

<grammar_file_names>

연결 엔진 이름을 지정합니다. 이 파라미터는 필수입니다.

<key>

<key>에는 다음과 같은 키 문자열을 지정할 수 있습니다. <value>에 공백이 포함되는 경우에는 value의 앞뒤를 반각 큰따옴표 「"」로 감싸줍니다.

<key>설명
authorizationauthorization에는 마이페이지에 기재된 [APPKEY] 또는 원타임 APPKEY 발행 API로 취득한 원타임 APPKEY를 설정합니다. 이 파라미터는 필수입니다.
profileIdprofileId는 사용자 고유의 단어를 등록할 경우의 사용자 고유 데이터 파일(프로파일)의 ID입니다. 해당 프로파일을 지정하여 사용할 수 있는 것은 해당 사용자뿐입니다. 프로파일은 사용자 고유 영역에 저장되므로 다른 사용자와의 이름 충돌이 발생하지 않습니다.

profileId에는 반각 영숫자 및 「-」(반각 마이너스), 「_」(반각 밑줄)로 구성된 문자열을 지정합니다. 단, 「__」(반각 밑줄 2문자)로 시작하는 문자열은 음성 인식 엔진 측에서 예약되어 있으므로 「__」(반각 밑줄 2문자)로 시작하는 문자열은 지정하지 않도록 하십시오.

마이페이지의 단어 등록에서 단어를 등록하면 마이페이지의 연결 정보에 기재된 서비스 ID(사용자 ID에서 자동 생성됨)와 동일한 이름의 프로파일(내 단어장)이 서버상에 자동으로 생성 저장됩니다. 이 프로파일(내 단어장)을 이용하여 음성 인식을 수행하고 싶을 때는 **「서비스 ID의 앞에 반각 콜론":"을 추가한 문자열」**을 profileId에 지정합니다. (예) 서비스 ID가 「aiueo12345」인 경우, 「:aiueo12345」를 profileId의 값으로 지정합니다.

단어 등록 단어 등록은 마이페이지의 단어 등록 화면에서 수행하는 것이 가장 간단합니다. 이 방법이라면 후술할 profileWords를 이용할 필요가 거의 없습니다.

마이페이지의 단어 등록 화면에서 작성한 프로파일(내 단어장)과 profileWords의 관계에 대해서는 이 페이지profileIdprofileWords를 참조하십시오. profileIdprofileWords 모두를 지정하는 경우에는 profileId를 먼저 지정해야 합니다.
profileWordsprofileWords 파라미터에는 등록하고 싶은 단어의 표기와 읽기를 설정합니다. 『표기<반각 공백>읽기』와 같이 등록합니다. 여러 개를 등록하는 경우에는 「 | 」로 구분합니다. 전송 시에는 profileWords 파라미터의 값 전체를 「"」로 감싸줍니다. ※ 클래스 이름을 지정하는 경우에는 『표기<반각 공백>읽기 <반각 공백> 클래스 이름』으로 지정하십시오.
keepFillerToken발화에 포함된 필러 단어(「아ー」나 「어ー」 등)를 인식 결과 문자열에 포함하고 싶은 경우에는 다음과 같이 지정합니다.

keepFillerToken=1

필러 단어에는 다양한 것들이 있지만, 모두 표기의 앞뒤가 반각의 %로 둘러싸여 있습니다. (예) %아ー%  %어ー%   %오ー%  %어ーっと%

keepFillerToken=1의 지정을 하지 않은 경우, 필러 단어는 인식 결과 문자열에서 제거됩니다.
segmenterProperties발화 검출의 파라미터입니다. 화자 다이어라이제이션의 활성화/비활성화를 제어하거나 결과를 조정하기 위한 파라미터를 설정할 수 있습니다. 여러 파라미터를 공백으로 구분하여 설정할 수 있습니다.

segmenterProperties="key1=value1 key2=value2..."

설정할 수 있는 파라미터는 다음과 같습니다.

useDiarizer
1을 설정하면 화자 다이어라이제이션이 활성화됩니다.

・지정 가능한 값: 0 또는 1
・기본값: 0

diarizerAlpha
새로운 화자의 출현 용이성을 제어하는 파라미터입니다. 큰 값을 지정할수록 새로운 화자가 출현하기 쉬워지고, 작은 값을 지정할수록 새로운 화자가 출현하기 어려워집니다. useDiarizer=1일 때만 유효합니다.

・지정 가능한 값: 0 이상
・참고 범위: 1e-100~1e50
・기본값: 1

diarizerTransitionBias
화자 전환의 용이성을 제어하는 파라미터입니다. 큰 값을 지정할수록 화자가 전환되기 쉬워지고, 작은 값을 지정할수록 화자가 전환되기 어려워집니다. useDiarizer=1일 때만 유효합니다.

・지정 가능한 값: 0 이상 1 미만
・참고 범위: 1e-150~1e-10
・기본값: 1e-40 (8k의 경우는 1e-20)

마이페이지에서 등록한 단어를 사용하고 싶은 경우의 s 명령어

s MSB16K -a-general profileId=:<사용자ID> authorization=XXXXXXXXXXXXXX

이 세션을 위해 일시적으로 단어 등록하는 경우의 s 명령어

s MSB16K -a-general profileWords="AMI あみ|AmiVoice あみぼいす" authorization=XXXXXXXXXXXXXX

위의 예는 profileId를 지정하지 않고, "AMI あみ|AmiVoice あみぼいす" (2개 단어)를 등록합니다. 이어서, 이 세션 내에서 음성 데이터를 전송하면 이 단어들이 음성 인식 처리에 사용됩니다. 그 후 e 명령어 패킷을 전송(세션 종료)하면 이 단어들은 무효화되며 저장되지 않습니다.

사용자 지정 프로파일을 만들고 단어를 등록하는 경우의 s 명령어

s MSB16K -a-general profileId=test profileWords="AMI あみ|AmiVoice あみぼいす" authorization=XXXXXXXXXXXXXX

위 예시에서 profileId는 'test'이고, 등록 단어는 "AMI あみ|AmiVoice あみぼいす"(2개 단어)입니다. ※사용자가 직접 만든 프로파일은 마이페이지의 단어 등록 화면에서 관리할 수 없습니다.

사용자 지정 프로파일에 단어 저장 방법

s 명령어에 profileIdprofileWords를 추가하여 전송한 후, 음성 데이터를 보내지 않고 e 명령어 패킷을 보내십시오. 음성 데이터 전송 중지가 수락되면 지정된 profileId에 단어가 저장됩니다. 프로파일에 단어를 저장 등록하려면 매번 저장 등록하고자 하는 단어를 모두 전송해야 합니다. 한 번 단어를 등록한 후 나중에 다른 단어를 추가로 등록하고 싶은 경우, 추가할 단어와 이전에 등록된 단어를 모두 함께 전송해야 합니다. 프로파일에 단어를 저장하는 것은 "전체 교체"를 의미합니다. 현재 프로파일에 등록된 단어가 무엇인지, 과거에 어떤 단어를 등록했는지 등에 대해서는 사용자 본인의 책임입니다.

노트
  • 마이페이지의 단어 등록의 경우, 현재 등록된 단어를 화면상에서 확인할 수 있으며, CSV 파일에서 추가 등록하거나 전체 교체를 사용자가 선택할 수 있습니다.
주의
  • 사용자 지정 프로파일에 단어를 저장하기 위한 연결에서는 profileId 앞에 ":" (반각 콜론)을 붙이면 안 됩니다. 앞에 반각 콜론을 붙이면 해당 프로파일에 단어가 저장되지 않으니 주의하십시오.

등록 단어 사용 방법

프로파일에 등록한 단어를 사용하여 음성 인식을 수행하려면 s 명령어 패킷을 전송할 때 profileId에 이전에 단어 등록을 수행한 프로파일의 profileId를 앞에 ":" (반각 콜론)을 붙여 지정합니다. 여러 멤버가 사용하는 경우에 profileId 앞에 ":"를 붙이지 않고 지정하면 인식 정확도가 낮아질 수 있습니다.

등록 단어 삭제 방법

등록한 단어를 삭제하려면 s 명령어 전송 시 profileId를 지정한 후 profileWords에 반각 공백 1개를 지정하십시오.

사용자 지정 프로파일을 음성 인식에 사용하고 싶은 경우의 s 명령어

s MSB16K -a-general profileId=:test authorization=XXXXXXXXXXXXXX

s 명령어 응답 패킷

s 명령어에 대한 응답으로 서버에서 클라이언트로 전송됩니다.

형식

타입 TEXT

시작 요청 성공 시의 응답 패킷

전송 시작 요청이 성공하면 s 한 글자가 반환됩니다.

s

시작 요청 실패 시의 응답 패킷

전송 시작 요청이 실패하면 s 뒤에 반각 공백을 두고 에러 메시지가 반환됩니다.

s <error_message>

에러 메시지

클라이언트 에러

s 명령어의 요청 파라미터나 인증 정보의 오류로 인한 에러입니다. 수정 후 다시 요청을 보내주십시오.

에러 메시지내용
s received unsupported audio format지정된 음성 포맷에 오류가 있었습니다.
s can't verify service authorization인증에 실패했습니다. 다음 중 하나의 이유입니다.
- APPKEY가 설정되지 않았습니다
- 설정된 APPKEY에 오류가 있습니다
- 원타임 APPKEY로 제한된 IP 주소 외에서 접근했습니다
s service authorization has expired: <expirationTime> <expiresIn>원타임 APPKEY로 제한한 유효 기간이 만료되었습니다.
s can't connect to recognizer server인증에 실패했습니다. 원타임 APPKEY가 유효하지 않습니다.
s can't connect to recognizer server (can't find available servers)지정된 연결 엔진 이름이나 음성 포맷에서 적절한 엔진을 찾을 수 없어 연결에 실패했습니다.
s can't start feeding audio data to recognizer server지정된 세그먼터의 파라미터에 오류가 있어 음성 데이터 전송 시작 처리에 실패했습니다.
s can't connect to recognizer server (can't find available servers because requested dictation grammar file name is invalid)지정된 연결 엔진 이름이 유효하지 않아 연결에 실패했습니다.

서버 에러

기반 시스템의 장애 등으로 인해 드물게 발생할 수 있는 에러입니다. 잠시 기다린 후 다시 요청을 보내주십시오.

에러 메시지내용
s can't connect to recognizer server (can't connect to server)"음성 인식 서버에 연결할 수 없었습니다.
s can't connect to recognizer server (can't find available servers because all requested servers are busy)지정된 연결 엔진 이름이나 음성 포맷에 대한 적절한 음성 인식 서버가 모두 혼잡하여 연결할 수 없었습니다.
s can't connect to recognizer server (can't send data)기반 시스템 내 서버 간 통신 오류로 인해 연결에 실패했습니다.
s can't connect to recognizer server (can't receive data)기반 시스템 내 서버 간 통신 오류로 인해 연결에 실패했습니다.
s can't connect to recognizer server (disconnected by force)기반 시스템 내 서버 간 통신 오류로 인해 연결에 실패했습니다.

제한 사항으로 인한 에러

제한 사항에 저촉된 경우 발생합니다. s 명령어의 요청부터 다시 시작해주십시오.

에러 메시지내용
s session timeout occurred세션 타임아웃이 발생했습니다. 제한 사항의 세션 최대 시간을 초과한 경우 발생합니다. 서버 측에서 연결 해제 처리를 수행했습니다.