2015-12-16 6 views
0

У меня есть следующие, очень простой код (Delphi/Object Pascal), который использует Microsoft SAPI 5.4, чтобы сделать некоторые Text To SpeechSAPI 5.4 Параметры вывода аудио

// init 
var engine : tspvoice; 
var voice : ispeechobjecttoken; 
engine:=tspvoice.Create(nil); 

// pick the first voice and assign it to the engine 
voice := ISpeechObjectToken(0); 
engine.Voice := Voice; 

// speak 
engine.Speak(text, SVSFlagsAsync); 

Однако я не вижу всякого контроля выходной формат (бит на образец/частота). У меня есть пример приложения (TTSapp) из старого SAPI SDKdownload, который позволяет управлять такими параметрами. К сожалению, я не могу найти исходный код в любом месте, и я не могу найти никакой загрузки в обновленный SDK sapi.

Любые подсказки?

ответ

0

Обычно я не использую delphi, но у меня есть пример на C++, если это помогает. В этом случае вы можете видеть, что я возился с CSpStreamFormat, а затем вызывал SPBindToFile, чтобы установить его. sapi.h имеет все типы SPSTREAMFORMAT, которые вы можете использовать.

HRESULT hr = S_OK; 
    CComPtr<ISpObjectToken> cpVoiceToken; 
    CComPtr<ISpVoice> cpVoice; 

    CSpStreamFormat cAudioFmt; 
    CComPtr<ISpStream> cpStream; 

    ::CoInitialize(NULL); 
    hr = cAudioFmt.AssignFormat(SPSF_22kHz16BitMono); 
    hr = SPBindToFile(L"E:\\fileName.wav", SPFM_CREATE_ALWAYS, &cpStream, &cAudioFmt.FormatId(), cAudioFmt.WaveFormatExPtr()); 
    hr = cpVoice.CoCreateInstance(CLSID_SpVoice); 
    cpVoice->SetOutput(cpStream, TRUE); 
    hr = cpVoice->Speak(L"My spoken text goes here", SPF_DEFAULT, NULL); 

    cpStream->Close(); 
    cpStream.Release(); 
    cpVoice.Release(); 

    ::CoUninitialize(); 
+0

Спасибо. Тем не менее, я знал об этом, я уже использовал приведенное выше при записи TTS в файл Wav. Моя проблема в том, что я не вижу одинакового уровня управления (параметры аудиоформата) для вывода в реальном времени. Тем не менее, некоторые тестовые приложения SAPI позволяют пользователю настраивать формат выходного аудиосигнала для выхода волны. – resle

Смежные вопросы