可以使用SpeechToText(语音识别)和之后的TextToSpeech(使用相同的文本和相同的语音)吗?

时间:2010-07-01 11:39:10

标签: speech-recognition text-to-speech sapi speech-to-text

我正在为聋哑人制作一个节目。我正在使用sapi和TTs。该程序同时用手做3D动画。但问题是,声音(也就是说,当它们放在最慢的语音时)是为了我想要的速度。所以,我考虑过语音识别,但问题是我要在动画开始之前对文本做一个大的过程。

所以,我想知道是否可以进行语音识别(来自我在.wave文件中的声音),之后做同样的TT过程(使用Sapi事件......)但是使用.wave与我的声音。

如果它可行,请告诉我如何。如果您认为有更好的选择,请让我看看它们。

感谢您的时间(并原谅我的英语)

Jesuskiewicz

1 个答案:

答案 0 :(得分:0)

既然我明白了你想要发生什么,我可以说,就我所知,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);

我希望这足以让你开始......