//All three include files needed for both versions//
#include <sapi.h>
#include <string>
#include <iostream>
//User inputs what is to be said//
int main(int argc, char* argv[])
{
ISpVoice * pVoice = NULL;
if (FAILED(::CoInitialize(NULL)))
return FALSE;
HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice);
if (SUCCEEDED(hr))
{
std::wstring input;
while (true)
{
std::cout << "Enter text:\n";
std::getline(std::wcin, input);
hr = pVoice->Speak(input.c_str(), 0, NULL);
}
}
pVoice->Release();
pVoice = NULL;
::CoUninitialize();
return 0;
}
代码很简单。它的微软说明如何使用SAPI进行一些编辑,使程序说出用户输入的内容,这是我在本网站上找到的。
我一直试图通过输出获得回声效果。根据我所学到的,回声效果只不过是同时播放相同的音频,延迟时间为10 - 60毫秒(尊重)。
有了这个设置,我找不到同时播放出来的方法,并在两者之间放置一个延迟变量。延迟部分并不难,但它是我无法弄清楚的同步输出。