2014-07-07 4 views
1

sapi 5.4를 사용하고 있는데 훈련을 위해 오디오를 유지할 수 있지만이 내용은 Acoustic training using SAPI 5.3 Speech API에 지정된대로 레지스트리 항목에 추가 할 수 있습니다. ISpObjectToken :: GetStorageFileName에 사용할 인수를 이해할 수 없습니다. 누군가 나를 도와 줄 수 있습니다. 그것으로?훈련 파일을 레지스트리에 추가하는 데 GetStorageFileName 함수를 사용하는 방법은 무엇입니까?

답변

1

ISpObjectToken::GetStorageFileName은 세계에서 가장 잘 설명 된 API는 아닙니다. 다행히도 문서를 개선하는 데 도움이되는 몇 가지 예제가 있습니다. 당신이 개체 토큰과 관련된 파일 이름을 필요로하는 경우

clsidCaller는

설정하십시오. 교육을 위해서는 CLSID_NULL이어야합니다. (당신이 엔진 관련 데이터를 업데이트하는 경우, 그것은 엔진의 CLSID 될 것입니다.)

pszValueName

에 파일 이름을 저장하는 레지스트리 하위 키의 이름입니다. 훈련이 정상적으로 L"TrainingAudio-<locale>"이어야하며, 여기서 locale은 엔진의 4 자리 로캘 ID 여야합니다. 파일의 이름을 생성 할

pszFileNameSpecifier.

"X : \"또는 "\"로 시작하면 전체 경로로 간주됩니다.

그렇지 않으면 nFolder 매개 변수에 지정된 특수 폴더 ID와 관련 있다고 가정합니다.

pszFileNameSpecifier가 '\'로 끝나거나 NULL이면 고유 한 파일 이름이 만들어집니다.

이름에 % d이 있으면 % d는 고유 한 파일 이름을 부여하는 숫자로 바뀝니다.

교육의 경우, 경로를 검색 할 수있는 폴더를 식별 L"TrainingAudio\\TR_%d.wav".

nFolder

CSIDL 값 같은 것을 지정해야합니다. 사용자는 폴더의 CSIDL을 CSIDL_FLAG_CREATE와 결합하여 강제로 폴더를 만들 수 있습니다. pszFileNameSpecifier가 NULL 또는 "\"인 경우 nFolder는 사용자가 강제로 파일을 만들려는 경우 CSIDL_FLAG_CREATE와 결합하여 지정된 CSIDL 폴더를 가져야합니다.

교육의 경우이 값은 CSIDL_LOCAL_APPDATA | CSIDL_FLAG_CREATE이어야합니다. 파일 경로 정보를 수신 null로 종료 된 문자열에 대한 포인터의

ppszFilePath

주소. 완료되면 CoTaskMemFree를 사용하여 문자열을 해제하십시오.