Author Topic: OpenAL - звуковая библиотека для WS3D  (Read 841 times)

0 Members and 1 Guest are viewing this topic.

Offline Marsha

  • Friends
  • Knight
  • *
  • Posts: 128
  • Reputation 11
Re: OpenAL - звуковая библиотека для WS3D
« Reply #15 on: November 25, 2017, 06:45:25 PM »
Думаю, ответ нужно искать в синтезаторе речи (eSpeak, кажется?)
Именно потому, что скорость регулируется, невозможно точно предугадать, когда будет прочитана фраза. Незрячие обычно сильно ускоряют синтезатор, чтобы успевать реагировать на сообщения системы, играть и палаллельно отвечать в чате, например.
Помню, в BGT есть команда voice.speak_wait, которая означает, что нужно дождаться, когда будет прочитана фраза, и только после этого продолжать выполнять программу. Это работало как для SAPI, так и для NVDA. Хотя бы ясно, что это реально.

Да, ESpeak - один из синтезаторов речи, но он сейчас не популярен, т.к. есть десятки синтезаторов с более естественным звучанием. Из линейки Vocalizer Expressive или хотя бы отечественный open source синтезатор RHVoice.
« Last Edit: November 25, 2017, 06:47:17 PM by Marsha »

Offline Marsha

  • Friends
  • Knight
  • *
  • Posts: 128
  • Reputation 11
Re: OpenAL - звуковая библиотека для WS3D
« Reply #16 on: November 16, 2018, 12:10:03 PM »
Протестировала поддержку NVDA в WS3D 1.1. :) Еще раз спасибо, Nikolas. Только надо Sleep'ы увеличить и чуть иначе расставлять. Иначе NVDA не успевает прочесть ничего до закрытия окна (пока он озвучивает заголовок консоли, уже все). Если увеличить только последний Sleep, то не проговаривает "Test speak". Нормально работает вот так:

Quote
#Inclib "nvdaControllerClient32"

Extern "c"
   Declare Function nvdaController_testIfRunning() As Long
   Declare Sub  nvdaController_speakText(ByVal text As Const WString ptr)
   Declare Sub  nvdaController_cancelSpeech()
   Declare sub nvdaController_brailleMessage(ByVal message As const WString Ptr)
End Extern


If nvdaController_testIfRunning()<>0 Then
   Print "NVDA controller not found. Exiting..."
   Sleep(2000)
   End
EndIf

Sleep(1000)
Dim As String myText="Приветы миру и прочий тестовый текст."

Print "Тестируем голос: "
Sleep(1000)
nvdaController_speakText(myText)

Sleep(1000)

Print "Выводим сообщение на брайлевский дисплей:"

nvdaController_brailleMessage(myText)

Print "Завершаем тест"
Sleep(10000)

End
« Last Edit: November 16, 2018, 12:13:30 PM by Marsha »

Offline Nikolas - WS3D Developer

  • Programmer
  • Global Moderator
  • Marquess
  • *
  • Posts: 880
  • Reputation 61
Re: OpenAL - звуковая библиотека для WS3D
« Reply #17 on: November 16, 2018, 08:07:09 PM »
Привет, Marsha.
Quote
Протестировала поддержку NVDA в WS3D 1.1.
Строго говоря, никакой заслуги WorldSim3D в этом нет. Можно подключить к любому ЯП, даже и не движку вовсе. Но все-же хочется думать, что данная возможность кому-нибудь будет полезна.
-------------------------------------------------------------------------------------
Жаль только, что перерыв в последних сообщениях темы у нас "всего" 1 год.
Под лежачий камень мы всегда успеем...