Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
использование SAPI через C++ |

16.03.2009, 11:40
|
|
Участник форума
Регистрация: 01.04.2008
Сообщений: 200
Провел на форуме: 1059196
Репутация:
39
|
|
использование SAPI через C++
Написал код преобразующий текст в голос и сохраняющий его в wav файл, но файл получается битым
и открывается только VLC плеером
PHP код:
//========= Copyright © 2009, Fire64, All rights reserved. ============
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================
#include <stdio.h>
#include <string.h>
#include <sapi.h>
#include <tchar.h>
int main( int argc, char **argv )
{
wchar_t *m_sText = L"This sounds normal but the pitch drops half way through";
ISpStream *spStream = NULL;
ISpVoice * pVoice = NULL;
WAVEFORMATEX _fmt;
if (FAILED(CoInitialize(NULL)))
{
return 0;
}
CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice);
CoCreateInstance(CLSID_SpStream, NULL, CLSCTX_ALL, IID_ISpStream, (void **)&spStream);
_fmt.wFormatTag=WAVE_FORMAT_PCM;
_fmt.nChannels=1;
_fmt.wBitsPerSample=16; // 16 bit
_fmt.nSamplesPerSec=44100; // 44 khc
_fmt.nBlockAlign=2;
_fmt.nAvgBytesPerSec=88200;
_fmt.cbSize=0;
spStream->BindToFile(L"out.wav", SPFM_CREATE_ALWAYS, &SPDFID_WaveFormatEx, &_fmt,SPFEI_ALL_EVENTS);
pVoice->SetOutput( spStream, TRUE );
pVoice->Speak(m_sText, 0, NULL);
pVoice->Release();
pVoice = NULL;
CoUninitialize();
return 0;
}
Последний раз редактировалось fire64; 16.03.2009 в 18:05..
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|