我正在使用sapi 5.4并且我能够保留用于训练的音频但是将其添加到此Acoustic training using SAPI 5.3 Speech API中给出的注册表项中我无法理解用于ISpObjectToken :: GetStorageFileName的参数有人可以帮帮我吗?
答案 0 :(得分:2)
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".
n文件夹
CSIDL值,用于标识要检索其路径的文件夹。用户可以通过将文件夹的CSIDL与CSIDL_FLAG_CREATE组合来强制创建文件夹。如果pszFileNameSpecifier为NULL或“\”,则如果用户想要强制创建文件,则nFolder必须具有指定的CSIDL文件夹和CSIDL_FLAG_CREATE。
对于培训,这应该是CSIDL_LOCAL_APPDATA | CSIDL_FLAG_CREATE
。
ppszFilePath
指向接收文件路径信息的以null结尾的字符串的指针的地址。完成后使用CoTaskMemFree释放字符串。