WindowsVoiceProject + Unity3D 는 윈도우 TTS 를 Unity3D 에서 사용할 수 있게 해주는 플러그인 입니다. 원 소스의 출처는 https://chadweisshaar.com/blog/2015/07/02/microsoft-speech-for-unity/ 입니다.
TTS(Text To Speech) 는 모바일이나 클라우드를 이용해서 많은 서비스가 이미 나와 있습니다. 그럼에도 불구하고 이 플러그인을 사용하는 이유는 클라우드 TTS가 온라인이라는 특성상 음성이 나오기까지 딜레이가 발생하기 때문입니다. 본 플러그인은 윈도우에 있는 기본 TTS를 이용하므로 실행과 동시에 바로 TTS 를 출력합니다.
다만 아직 오디오 소스를 선택하는 코드가 없고 이전 TTS 를 취소할 수가 없어 연속적으로 TTS 요청시 밀리거나 출력되지 않는 버그가 있습니다.
음성을 선택하기 위해서는 아래 부분의 소스를 수정해야 합니다.
void speechThreadFunc()
{
ISpVoice * pVoice = NULL;
... 중략 ...
if (SUCCEEDED(hr))
{
hr = cpEnum->Item(3, &cpVoiceToken); // 원하는 음성의 인덱스를 선택
}