Отправляет email-рассылки с помощью сервиса Sendsay

[prg] не знаю, как сформулировать вопрос.

здравствуйте.
попытаюсь его сформулировать.
представим такую ситуацию:
есть аудио игра, в ней есть карта, карта может содержать описание объектов, например
покасившееся дерево.
как можно выводить эту информацию пользователю?
конешно можно сделать так, что бы по нажатию клавиши проговаривалось заранее
записанное в файл описание, но это давольно много будет занимать памяти.
можно также выводить на speech api, но это не особенно радует, когда может происходить
несколько событий, которые необходимо воспроизвести, вироятно они будут друг
друга перебивать.
на мой взгляд, было бы удобнее выводить эту информацию так, что бы скрин ридер
мог ее озвучивать, причем, как автоматически, так и по требыванию пользователя,
ну как редактор для чтения.
и вот как это можно осуществить, что для этого использовать?
ориентируясь, на популярные скрин ридеры nvda и jaws.
заранее благодарю за ответ.
С уважением: Максим Calculator.
calculator.***@m*****.ru
http://www.twitter.com/calculatorspb/

Ответить   Sat, 12 Oct 2013 15:13:33 +0400 (#2845678)

 

Ответы:

Приветствую всех.

Предварительно записанные речевые сообщения, начитанные хорошим диктором (дикторами)
с артистическими способностями, это единственный вариант, приемлемый для высококлассной
аудиоигры.
"Много памяти" -- понятие относительное. При нынешних объемах дисков, флешек
и ОЗУ много памяти это не займёт, тем более, что файлы могут храниться в сжатых
форматах.

происходить

Не будут, если вы организуете передачу сообщений должным образом. Например,
в MS SAPI поддерживаются уведомления о завершении синтеза очередного фрагмента
текста. Вам нужно будет отслеживать эти уведомления и передавать очередную фразу
для синтеза, а фразы предварительно накапливать в специально организованной очереди
сообщений.
Это наиболее употребительная схема работы с речевым синтезом. Если метод отвечающий
в API за синтез речи синхронный, то реализовывать очередь сообщений придется
вам; а если асинхронный, то, вероятно, такая очередь уже присутствует "внутри"
речевого API.

Это самый неподходящий для компьютерной игры вариант из предложенных.
Для игры это не подходит, потому что весь синтез речи находится под контролем
скринридера, то есть вы не сможете выбрать голос, соответствующий вашему сюжету;
поменять скорость, тембр и прочее. Ну и самое главное: в вашу игру не смогут
играть те, у кого на компьютере не установлен скринридер.

Есть два варианта реализации такого решения: один попроще, другой посложнее.
Вариант попроще основан на использовании специальных API, поддерживаемых JAWS
и NVDA.
При помощи этих API можно через скринридер озвучить любой текст и выполнить еще
несколько интересных действий.
Ссылки по теме:
http://win.tiflocomp.ru/docs/jfwapi.php
http://win.tiflocomp.ru/docs/jfwapi2.php
http://win.tiflocomp.ru/docs/jfwapi3.php

http://win.tiflocomp.ru/docs/free/nvda_api_review.php

Второй вариант -- это написание полноценного сервера MSAA, реализующего поддержку
доступности в вашей игре. Такой вариант будет работать с любым уважающим себя
скринридером.
Однако это требует хорошего знания и опыта разработки COM и OLE-Automation.

Успехов. Анатолий.

Ответить   "i_chay" Sat, 12 Oct 2013 17:56:46 +0300 (#2845751)