m (moved PackagingDrafts/SystemWideVoiceData to PackagingDrafts/CommonVoiceData: System Wide can be sometimes misleading. The whole idea of voice data is establishing "Common" infrastructure of voice data.) |
|
(No difference)
|
Revision as of 06:24, 14 August 2009
Introduction
System-wide voice data packages enable the text-to-speech functionality of application. Usually, the voice data are independently developed for certain application, should it be customized web browsers, or input methods which use voice to confirm the input.
Voice data license
According to Tom Callaway, the voice data should be in one of our Good Free Software , Approved content License, or at least freely redistributable with out limitation.
Voice file format
Voice data can be stored as individual files, packed in an archived file, or produced by synthesizers.
Voice data should be stored in open audio format format such as ogg. If using archive files, the archive file should be in open format such as 7z or tar. 7z is recommend for its capability of handling cross platform unicode filename.
Package naming guide
voicedata-<locale>-<upstream>-<variant>
where
- locale is the locale string.
- upstream is the upstream or the project name that provide the voice. default should be reserved word, as it will be a link to the preferred voice from org/variant.
- variant is an optional field for noticeable info, such as the person who provide the voice, algorithm name.
For example, gcin voice data in this scheme should be named as:
voicedata-zh_TW-gcin-EdwardLiu
Voice data preference can show something like:
Locale | Voice |
---|---|
en_US | UncleSam |
en_GB | QueenElizabeth |
....... | ....... |
zh_TW | EdwardLiu |
Package Contents
The contents of package should be in %{_datadir}/voicedata/locale/org/variant
Besides voice data and license file, it is recommend that we have a database to maintain the voice data. The field of that database.
Phoneme | Voice file | Archive | Command |
---|---|---|---|
a | a/a.ogg | a.7z | null |
ai | a/ai.ogg | a.7z | null |
b | b/b.ogg | b.7z | null |
where
- Phoneme: Phoneme or word to be pronounced. Cannot be null.
- Voice file: Relative filename of voice file, can be null if using a voice synthesizer.
- Archive: Archive file that hold the voice file, can be null if not using an archive file.
- Command: Command that produce the voice. This field is mainly for synthesizer. Can be null.
Requires
The package may require a command-line audio player, file unarchiver, or synthesizer.
Post install
If no previous voice data in the locale, the package may "register" itself as default by pointing the default symbolic link at %{_datadir}/voicedata/locale/ to its own org/variant directory.
Dialect handling
If the dialect is already in system locale, then use that locale.
If the dialect uses phoneme set which is identical with main language but with different pronunciation, the recommended way to is establishing an upstream project and recording the voice of the dialect.
If the dialect is using different phonemes with main language, make use of locale's modifier.
For example, to include Shanghai dialect can be expressed as:
zh_CN@shanghai
To ponder
- Multilingual voice data