Windows에서는 문자를 음성으로 출력할 수 있는 TTS(Text To Speech) 기능을 제공합니다.
당연히 다른 상용화된 TTS 제품들과 비교하면 매우 낮은 수준이지만, 간단하게 코딩해서 사용할 수 있다는 것에 의미만 두면 되겠습니다.
한글 TTS는 Windows 8 이후부터 지원합니다.
필요 헤더 파일은 아래와 같습니다.
#include <sapi.h>
Visual C++에서 TTS는 COM을 사용하여 간단하게 만들 수 있습니다.
COM을 사용하고, 이후 사용하지 않을 때엔 초기화와 해제를 해줘야합니다.
CoInitialize( NULL ); // 생성
CoUninitialize(); // 해제
생성과 해제 사이에 CComPtr<ISpVoice>를 선언하여 객체를 선언합니다.
전체 코드는 아래와 같습니다.
CoInitialize( NULL );
CComPtr<ISpVoice> ptr_tts;
// 객체 생성
HRESULT hr = ptr_tts.CoCreateInstance( CLSID_SpVoice );
if ( SUCCEEDED( hr ) )
{
// 텍스트 음성출력
ptr_tts->Speak( _T( "안녕하세요?" ), SPF_DEFAULT, 0 );
// 해제
ptr_tts.Release();
}
CoUninitialize();
관련 MSDN 링크도 참고바랍니다.