Всем привет! Короче беда такая, есть голосовой движок который хорошо говорит.
В нем есть функция которая сохраняет звук в файлы...вот она что то ни как не хочет.
Может кто сталкивался или толкните куда копать...
Ну собственно код
QAxObject* sapi = new QAxObject("SAPI.SpVoice", this); //сделали голос
sapi->setProperty("Voice", sapi->querySubObject("GetVoices()")->querySubObject(QString("Item(").append(QString::number(0)).append(")").toAscii())->asVariant()); //выбрали женский
sapi->setProperty("Rate", QString::number(-1)); //замедлили
sapi->setProperty("Volume", 100); //громкость на всю
QAxObject *sapiFileStream = new QAxObject("SAPI.SpFileStream"); //поток пишущий в файл
sapiFileStream->dynamicCall(QString::fromUtf8("Open(test.wav, SSFMCreateForWrite, False)").toAscii()); //указали в какой файл
sapi->setProperty("AudioOutputStream", sapiFileStream->asVariant()); //указали гооворилки что бы болтала в файл
sapi->setProperty("WaitUntilDone", -1);//ожидаем окончания болтовни
sapi->dynamicCall("Speak(\"const QString& str\", SpeechVoiceSpeakFlags.SVSFlagsAsync)", QString::fromUtf8("Сохранение голоса в файл")); //начали говорить
sapiFileStream->dynamicCall("Close()"); //закрыли файл
sapi->setProperty("AudioOutputStream", "Nothing"); //убрали признак говорить в поток
delete sapiFileStream;
delete sapi;
Файл создается, но он всегда пустой, размер 1 килобайт и там только описание структуры wav. Пробовал делать через SpMemoryStream - что бы не в файл а в память писало, дальше читать в QByteArray, тоже глухо...