我在为失聪的人准备一个节目。我和sapi和TTs一起工作过。该程序同时用手制作三维动画。但问题是,声音(也是当他们在其最慢的发言)是快速为我想要的。所以,我考虑过语音识别,但问题是,在动画开始之前,我必须对文本做一个大的处理。
所以,我想知道是否可以进行语音识别(从.wave文件中的语音),然后再做同样的TTs处理(使用Sapi事件.)但是用.wave和我的声音。
如果是可确认的,请告诉我怎么做。如果你认为有更好的选择,让我看看。
谢谢你抽出时间(原谅我的英语)
耶苏基维奇
发布于 2010-07-20 17:30:50
既然我理解了您想要发生的事情,我可以说,据我所知,SAPI SR引擎并没有真正提供与传入文本同步的音素级标记。
您可以尝试的是(虽然我并没有真正的期望它能起作用)是获取音频,通过语音语法来生成音素,然后使用文本元素找到相应的音频片段。
当我说“发音语法”时,我指的是一个听写语法,加载了语音模型--设置如下:
CComPtr<ISpRecoGrammar> cpGrammar;
... initialize SR engine and create a grammar ...
cpGrammar->LoadDictation(L"Pronunciation", SPLO_STATIC);
在识别处理程序中,需要解析元素:
ISpRecoResult* ipReco;
SPPHRASE* pPhrase;
ipReco->GetPhrase(&pPhrase);
for (int i = 0; i < pPhrase->Rule.ulCountOfElements; ++i)
{
const SPPHRASEELEMENT * pElem = pPhrase->pElements + i;
// examine pElem->ulAudioSizeTime, etc.
}
::CoTaskMemFree(pPhrase);
我希望这足以让你开始..。
https://stackoverflow.com/questions/3157355
复制相似问题