Mac синтезатор речи при создании речевого канала возвращает ошибку параметра

У меня есть оболочка для многих программ чтения с экрана и речевых систем на Mac, Windows и Linux, и остался только один — Mac. Я следовал примерам, найденным на сайте разработчика Apple для менеджера синтеза речи, но не могу понять, какая у меня ошибка. Ошибка происходит, когда я запускаю строку кода

    OSErr val = NewSpeechChannel(NULL, chan);

Однако это возвращает ошибку -50, ошибку параметра. Я не смог найти никакой информации относительно этого и менеджера синтеза речи, и почти не нашел никакой информации об этом, кроме как в помощи для самих программ, вместо sdk. Я также посмотрел справочник менеджера синтеза речи под кодами ошибок, и его даже не было в списке. Я даже спрашивал на форумах разработчиков Apple, хотя речевой подфорум кажется довольно мертвым.

Итак, что может вызвать ошибку -50 (ошибка параметра) и как ее можно исправить.

-Майкл.

Постскриптум Мой код может быть найден в следующем проекте github, в screen-reader / screen_reader.cpp, однако я уверен, что единственными функциями Mac, которые я вызывал в данный момент, является NewSpeechChannel, который выдает ошибку -50.
http://github.com/2mb-solutions/horseshoes

0

Решение

Возможно, вы не выделяете структуру SpeechChannel, которая должна быть предварительно выделена, вместо этого вы используете NULL, что приводит к повреждению памяти.

Так должно быть

SpeechChannel speechChannel;
OSErr val = NewSpeechChannel(NULL, &chan);

или же

SpeechChannel *speechChannel = malloc(sizeof(SpeechChannel)); // Not NULL
OSErr val = NewSpeechChannel(NULL, chan);

Вы можете найти пример Вот

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]