Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   использование SAPI через C++ (https://forum.antichat.xyz/showthread.php?t=111387)

fire64 16.03.2009 11:40

использование 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 mainint argcchar **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_SpVoiceNULLCLSCTX_ALLIID_ISpVoice, (void **)&pVoice);


    
CoCreateInstance(CLSID_SpStreamNULLCLSCTX_ALLIID_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->SetOutputspStreamTRUE );

    
pVoice->Speak(m_sText0NULL);

    
pVoice->Release();

    
pVoice NULL


    
CoUninitialize();


    return 
0;




Время: 10:34