приветствую, dmitriy.
отвечаю на письмо от 14 марта 2007 г., 6:28:26:
dvg> Например в файле symbols.ini есть такая строка:
dvg> symbol1=! 11000000 восклицательный
dvg> Что означают цифры 11000000 ?
когда-то в другой рассылке проходила эта информация, она находится ниже.
В восьмибитной записи в файле symbols.ini первая пара отвечает за чтение
в режиме "Вся пунктуация (3), вторая - в режиме "Частичная пунктуация"
(2), третья - в режиме "Некоторая пунктуация" (1), четвёртая - в режиме
"Не читать пунктуацию" (0). При этом первое число каждой пары отвечает
за озвучивание имени символа в данном режиме (имя символа берётся из той
же записи в symbols.ini), а вторая - за посылку самого символа на
синтезатор или отфильтровывание символа. Имя символа читается, если
первое число 1, не читается, если 0. Сам символ отфильтровывается и не
идёт на синтезатор, если второе число 1, не отфильтровывается и идёт на
синтезатор, если 0.
Для ясности посылаю официальный англоязычный документ Freedom
Scientific, описывающий установку и настройку SAPI-совместимых
синтезаторов с Джоз. Там документирован и файл symbols.ini.
Олег
Henter-Joyce Technical Support Notice # 45 (TSN-45)
Subject: Getting JAWS to Work with TTS MSSAPI Speech Engines
Henter-Joyce Product: JAWS for Windows
Category: Synthesizers
January 18 2000
Description:
JAWS will not work with TTS (Text to Speech) MSSAPI (Microsoft
Application Programming Interface) Speech Engines
Solution:
1. Make an entry in the [Synthesizers] section of JAWS.INI file.
2. Enter the synthesizer into the symbols.ini file of the active
language's settings directory.
1. Make an entry in the [Synthesizers] section of JAWS.INI file.
In JAWS each synthesizer to be used must have an entry in the
[Synthesizers] section of JAWS.INI file.
The entry for each synthesizer has the following form:
SynthXName=
SynthXLongName=
SynthXDriver=
SynthXPort=
For a SAPI synthesizer, the lines of an entry should be as follow:
SynthXName=
Here, X represents a one or two digit number. This number is 1 for the
first synthesizer installed, 2 for the next one, etc. The numbers have
no significance
other than to identify the lines specific to each synthesizer.
SynthXName should contain at least a part of the engine's product name
as represented in the szProductName field of TTSMODEINFOW. This is what
JAWS uses
to determine the names of the speakers available for this engine. The
comparison against szProductName is for as many characters as are
contained in the
value of SynthXName. In most cases, a partial name is satisfactory.
SynthXLongName
The SynthXLongName entry is displayed to the user in the JAWS "Change
Synthesizer" dialog box in JAWS's Language Menu on the main menu bar.
The product
name should be the complete name of the product, in this case " TTS
MSSAPI."
SynthXDriver
The SynthXDriver entry should always contain MSSAPI.
SynthXPort
The SynthXPort entry is not used for SAPI synthesizers.
When a SAPI synthesizer is loaded, JAWS enumerates all engines, and
stores the names of all Speakers associated with the desired
szProductName as indicated
on the SynthXName= line.
It then enables a single engine instance. It assumes that the tag
Vce=Speaker can be used to select any of the voices associated with this
product.
As an example, if FlexTalk is installed as the second synthesizer, then
its entries would be as follows:
Synth2Name=FlexTalk
Synth2LongName=FlexTalk
Synth2Driver=mssapi
2. Enter the synthesizer into the symbols.ini file of the active
language's settings directory.
In order for JAWS punctuation processing to function, there needs to be
a section for each synthesizer in a symbols.ini file of the active
language's settings
directory, e.g. c:\JAWS35\settings\enu\symbols.ini. The name of the
section should be whatever the value of SynthXName is followed by the
word symbols.
So if Synth1=FlexTalk, then the corresponding section of symbols.ini
would be [FlexTalk Symbols]. Alternatively, a synthesizer can use a
section in symbols.ini
that does not correspond to its SynthXName entry by putting a line in
the [Synonyms] section of SYMBOLS.INI. For example, for FlexTalk to use
the information
in the Eloquence symbols section, the line in the [Synonyms] section
would be FlexTalk=Eloq;
Each [XXX Symbols] section consists primarily of lines in the form:
symbol1=! 10000011 exclaim
symbol2=" 10000011 quote
The Symbol1, Symbol2, ... tags are arbitrarily assigned, but each must
appear only once in each section. The information following the = can be
divided
into three parts, separated from one another by a space.
First comes the symbol itself.
The next eight digits are either 0 or 1.
Then the word or words, which should be spoken as this symbol's name.
The eight digits indicate how this symbol should be processed in each of
the four punctuation modes (All, Most, Some, and None).
The first pair control behavior when punctuation is set to all (3), the
second pair when it is set to Most (2) and so on. The first of each bit
pair controls
whether or not the symbols name should be spoken when the symbol is
encountered. The name is spoken when the bit is set to 1 and is not
spoken when it
is set to 0.
The second bit of the pair determines whether or not the symbol itself
is sent out to the synthesizer. When this bit is 1, the symbol is
stripped out, when
it is 0, it is sent to the synthesizer.
There are some special lines in the [XXX Symbols] section that indicate
what should be spoken when certain other things are encountered in the
text.
Dot=dot
Point=point
NumericComma=Comma
NumericColon=Colon
Space=space
Blank=blank