我正在使用sapi 5.4,我能够保留audio进行培训,但将其添加到registry项中,如本文所述使用SAPI 5.3语音API进行声学培训我无法理解要用于ISpObjectToken :: GetStorageFileName的参数有人帮我出来吗?
ISpObjectToken::GetStorageFileName
不是世界上记录最好的API。 幸运的是,我有一些有用的例子来帮助改进文档。
clsidCaller
如果需要与对象标记关联的文件名,请设置此项。 对于培训,这应该是CLSID_NULL
。 (如果你正在更新引擎相关的数据,那么它将是引擎的CLSID。)
pszValueName
要存储文件名的注册表子项名称。对于培训,这应该是L"TrainingAudio-<locale>"
,其中语言环境应该是引擎的4位数区域设置ID。
pszFileNameSpecifier
要创建的文件的名称。
如果以“X:\”或“\”开头,则假定为完整路径。
否则,假定它与nFolder参数中给出的特殊文件夹ID相关。
如果pszFileNameSpecifier以'\'结尾,或者是NULL,则将创建唯一的文件名。
如果名称包含%d,则%d将被一个数字替换,以提供唯一的文件名。
对于训练,你应该指定一些像L"TrainingAudio\\TR_%d.wav".
n文件夹
标识要检索路径的文件夹的CSIDL值。 用户可以通过将文件夹的CSIDL与CSIDL_FLAG_CREATE组合来强制创建文件夹。 如果pszFileNameSpecifier是NULL或“\”,nFolder必须有一个指定的CSIDL文件夹与CSIDL_FLAG_CREATE相结合,如果用户想强制创建文件。
对于培训,这应该是CSIDL_LOCAL_APPDATA | CSIDL_FLAG_CREATE
CSIDL_LOCAL_APPDATA | CSIDL_FLAG_CREATE
。
ppszFilePath
指向接收文件路径信息的以空字符结尾的字符串的指针地址。 完成后使用CoTaskMemFree释放字符串。