Showing preview only (384K chars total). Download the full file or copy to clipboard to get everything.
Repository: woheller69/ttsEngine
Branch: master
Commit: 65b3f1a4a96b
Files: 455
Total size: 297.8 KB
Directory structure:
gitextract_z5s892v4/
├── .gitignore
├── LICENSE
├── README.md
├── app/
│ ├── .gitignore
│ ├── build.gradle.kts
│ ├── proguard-rules.pro
│ └── src/
│ └── main/
│ ├── AndroidManifest.xml
│ ├── assets/
│ │ ├── .gitkeep
│ │ └── espeak-ng-data/
│ │ ├── af_dict
│ │ ├── am_dict
│ │ ├── an_dict
│ │ ├── ar_dict
│ │ ├── as_dict
│ │ ├── az_dict
│ │ ├── ba_dict
│ │ ├── be_dict
│ │ ├── bg_dict
│ │ ├── bn_dict
│ │ ├── bpy_dict
│ │ ├── bs_dict
│ │ ├── ca_dict
│ │ ├── chr_dict
│ │ ├── cmn_dict
│ │ ├── cs_dict
│ │ ├── cv_dict
│ │ ├── cy_dict
│ │ ├── da_dict
│ │ ├── de_dict
│ │ ├── el_dict
│ │ ├── en_dict
│ │ ├── eo_dict
│ │ ├── es_dict
│ │ ├── et_dict
│ │ ├── eu_dict
│ │ ├── fa_dict
│ │ ├── fi_dict
│ │ ├── fr_dict
│ │ ├── ga_dict
│ │ ├── gd_dict
│ │ ├── gn_dict
│ │ ├── grc_dict
│ │ ├── gu_dict
│ │ ├── hak_dict
│ │ ├── haw_dict
│ │ ├── he_dict
│ │ ├── hi_dict
│ │ ├── hr_dict
│ │ ├── ht_dict
│ │ ├── hu_dict
│ │ ├── hy_dict
│ │ ├── ia_dict
│ │ ├── id_dict
│ │ ├── intonations
│ │ ├── io_dict
│ │ ├── is_dict
│ │ ├── it_dict
│ │ ├── ja_dict
│ │ ├── jbo_dict
│ │ ├── ka_dict
│ │ ├── kk_dict
│ │ ├── kl_dict
│ │ ├── kn_dict
│ │ ├── ko_dict
│ │ ├── kok_dict
│ │ ├── ku_dict
│ │ ├── ky_dict
│ │ ├── la_dict
│ │ ├── lang/
│ │ │ ├── aav/
│ │ │ │ ├── vi
│ │ │ │ ├── vi-VN-x-central
│ │ │ │ └── vi-VN-x-south
│ │ │ ├── art/
│ │ │ │ ├── eo
│ │ │ │ ├── ia
│ │ │ │ ├── io
│ │ │ │ ├── jbo
│ │ │ │ ├── lfn
│ │ │ │ ├── piqd
│ │ │ │ ├── py
│ │ │ │ ├── qdb
│ │ │ │ ├── qya
│ │ │ │ └── sjn
│ │ │ ├── azc/
│ │ │ │ └── nci
│ │ │ ├── bat/
│ │ │ │ ├── lt
│ │ │ │ ├── ltg
│ │ │ │ └── lv
│ │ │ ├── bnt/
│ │ │ │ ├── sw
│ │ │ │ └── tn
│ │ │ ├── ccs/
│ │ │ │ └── ka
│ │ │ ├── cel/
│ │ │ │ ├── cy
│ │ │ │ ├── ga
│ │ │ │ └── gd
│ │ │ ├── cus/
│ │ │ │ └── om
│ │ │ ├── dra/
│ │ │ │ ├── kn
│ │ │ │ ├── ml
│ │ │ │ ├── ta
│ │ │ │ └── te
│ │ │ ├── esx/
│ │ │ │ └── kl
│ │ │ ├── eu
│ │ │ ├── gmq/
│ │ │ │ ├── da
│ │ │ │ ├── is
│ │ │ │ ├── nb
│ │ │ │ └── sv
│ │ │ ├── gmw/
│ │ │ │ ├── af
│ │ │ │ ├── de
│ │ │ │ ├── en
│ │ │ │ ├── en-029
│ │ │ │ ├── en-GB-scotland
│ │ │ │ ├── en-GB-x-gbclan
│ │ │ │ ├── en-GB-x-gbcwmd
│ │ │ │ ├── en-GB-x-rp
│ │ │ │ ├── en-US
│ │ │ │ ├── en-US-nyc
│ │ │ │ ├── lb
│ │ │ │ └── nl
│ │ │ ├── grk/
│ │ │ │ ├── el
│ │ │ │ └── grc
│ │ │ ├── inc/
│ │ │ │ ├── as
│ │ │ │ ├── bn
│ │ │ │ ├── bpy
│ │ │ │ ├── gu
│ │ │ │ ├── hi
│ │ │ │ ├── kok
│ │ │ │ ├── mr
│ │ │ │ ├── ne
│ │ │ │ ├── or
│ │ │ │ ├── pa
│ │ │ │ ├── sd
│ │ │ │ ├── si
│ │ │ │ └── ur
│ │ │ ├── ine/
│ │ │ │ ├── hy
│ │ │ │ ├── hyw
│ │ │ │ └── sq
│ │ │ ├── ira/
│ │ │ │ ├── fa
│ │ │ │ ├── fa-Latn
│ │ │ │ └── ku
│ │ │ ├── iro/
│ │ │ │ └── chr
│ │ │ ├── itc/
│ │ │ │ └── la
│ │ │ ├── jpx/
│ │ │ │ └── ja
│ │ │ ├── ko
│ │ │ ├── map/
│ │ │ │ └── haw
│ │ │ ├── miz/
│ │ │ │ └── mto
│ │ │ ├── myn/
│ │ │ │ └── quc
│ │ │ ├── poz/
│ │ │ │ ├── id
│ │ │ │ ├── mi
│ │ │ │ └── ms
│ │ │ ├── qu
│ │ │ ├── roa/
│ │ │ │ ├── an
│ │ │ │ ├── ca
│ │ │ │ ├── es
│ │ │ │ ├── es-419
│ │ │ │ ├── fr
│ │ │ │ ├── fr-BE
│ │ │ │ ├── fr-CH
│ │ │ │ ├── ht
│ │ │ │ ├── it
│ │ │ │ ├── pap
│ │ │ │ ├── pt
│ │ │ │ ├── pt-BR
│ │ │ │ └── ro
│ │ │ ├── sai/
│ │ │ │ └── gn
│ │ │ ├── sem/
│ │ │ │ ├── am
│ │ │ │ ├── ar
│ │ │ │ ├── he
│ │ │ │ └── mt
│ │ │ ├── sit/
│ │ │ │ ├── cmn
│ │ │ │ ├── cmn-Latn-pinyin
│ │ │ │ ├── hak
│ │ │ │ ├── my
│ │ │ │ ├── yue
│ │ │ │ └── yue-Latn-jyutping
│ │ │ ├── tai/
│ │ │ │ ├── shn
│ │ │ │ └── th
│ │ │ ├── trk/
│ │ │ │ ├── az
│ │ │ │ ├── ba
│ │ │ │ ├── cv
│ │ │ │ ├── kk
│ │ │ │ ├── ky
│ │ │ │ ├── nog
│ │ │ │ ├── tk
│ │ │ │ ├── tr
│ │ │ │ ├── tt
│ │ │ │ ├── ug
│ │ │ │ └── uz
│ │ │ ├── urj/
│ │ │ │ ├── et
│ │ │ │ ├── fi
│ │ │ │ ├── hu
│ │ │ │ └── smj
│ │ │ ├── zle/
│ │ │ │ ├── be
│ │ │ │ ├── ru
│ │ │ │ ├── ru-LV
│ │ │ │ ├── ru-cl
│ │ │ │ └── uk
│ │ │ ├── zls/
│ │ │ │ ├── bg
│ │ │ │ ├── bs
│ │ │ │ ├── hr
│ │ │ │ ├── mk
│ │ │ │ ├── sl
│ │ │ │ └── sr
│ │ │ └── zlw/
│ │ │ ├── cs
│ │ │ ├── pl
│ │ │ └── sk
│ │ ├── lb_dict
│ │ ├── lfn_dict
│ │ ├── lt_dict
│ │ ├── lv_dict
│ │ ├── mi_dict
│ │ ├── mk_dict
│ │ ├── ml_dict
│ │ ├── mr_dict
│ │ ├── ms_dict
│ │ ├── mt_dict
│ │ ├── mto_dict
│ │ ├── my_dict
│ │ ├── nci_dict
│ │ ├── ne_dict
│ │ ├── nl_dict
│ │ ├── no_dict
│ │ ├── nog_dict
│ │ ├── om_dict
│ │ ├── or_dict
│ │ ├── pa_dict
│ │ ├── pap_dict
│ │ ├── phondata
│ │ ├── phondata-manifest
│ │ ├── phonindex
│ │ ├── phontab
│ │ ├── piqd_dict
│ │ ├── pl_dict
│ │ ├── pt_dict
│ │ ├── py_dict
│ │ ├── qdb_dict
│ │ ├── qu_dict
│ │ ├── quc_dict
│ │ ├── qya_dict
│ │ ├── ro_dict
│ │ ├── ru_dict
│ │ ├── sd_dict
│ │ ├── shn_dict
│ │ ├── si_dict
│ │ ├── sjn_dict
│ │ ├── sk_dict
│ │ ├── sl_dict
│ │ ├── smj_dict
│ │ ├── sq_dict
│ │ ├── sr_dict
│ │ ├── sv_dict
│ │ ├── sw_dict
│ │ ├── ta_dict
│ │ ├── te_dict
│ │ ├── th_dict
│ │ ├── tk_dict
│ │ ├── tn_dict
│ │ ├── tr_dict
│ │ ├── tt_dict
│ │ ├── ug_dict
│ │ ├── uk_dict
│ │ ├── ur_dict
│ │ ├── uz_dict
│ │ ├── vi_dict
│ │ ├── voices/
│ │ │ └── !v/
│ │ │ ├── Alex
│ │ │ ├── Alicia
│ │ │ ├── Andrea
│ │ │ ├── Andy
│ │ │ ├── Annie
│ │ │ ├── AnxiousAndy
│ │ │ ├── Demonic
│ │ │ ├── Denis
│ │ │ ├── Diogo
│ │ │ ├── Gene
│ │ │ ├── Gene2
│ │ │ ├── Henrique
│ │ │ ├── Hugo
│ │ │ ├── Jacky
│ │ │ ├── Lee
│ │ │ ├── Marco
│ │ │ ├── Mario
│ │ │ ├── Michael
│ │ │ ├── Mike
│ │ │ ├── Mr serious
│ │ │ ├── Nguyen
│ │ │ ├── Reed
│ │ │ ├── RicishayMax
│ │ │ ├── RicishayMax2
│ │ │ ├── RicishayMax3
│ │ │ ├── Storm
│ │ │ ├── Tweaky
│ │ │ ├── UniRobot
│ │ │ ├── adam
│ │ │ ├── anika
│ │ │ ├── anikaRobot
│ │ │ ├── announcer
│ │ │ ├── antonio
│ │ │ ├── aunty
│ │ │ ├── belinda
│ │ │ ├── benjamin
│ │ │ ├── boris
│ │ │ ├── caleb
│ │ │ ├── croak
│ │ │ ├── david
│ │ │ ├── ed
│ │ │ ├── edward
│ │ │ ├── edward2
│ │ │ ├── f1
│ │ │ ├── f2
│ │ │ ├── f3
│ │ │ ├── f4
│ │ │ ├── f5
│ │ │ ├── fast
│ │ │ ├── grandma
│ │ │ ├── grandpa
│ │ │ ├── gustave
│ │ │ ├── ian
│ │ │ ├── iven
│ │ │ ├── iven2
│ │ │ ├── iven3
│ │ │ ├── iven4
│ │ │ ├── john
│ │ │ ├── kaukovalta
│ │ │ ├── klatt
│ │ │ ├── klatt2
│ │ │ ├── klatt3
│ │ │ ├── klatt4
│ │ │ ├── klatt5
│ │ │ ├── klatt6
│ │ │ ├── linda
│ │ │ ├── m1
│ │ │ ├── m2
│ │ │ ├── m3
│ │ │ ├── m4
│ │ │ ├── m5
│ │ │ ├── m6
│ │ │ ├── m7
│ │ │ ├── m8
│ │ │ ├── marcelo
│ │ │ ├── max
│ │ │ ├── michel
│ │ │ ├── miguel
│ │ │ ├── mike2
│ │ │ ├── norbert
│ │ │ ├── pablo
│ │ │ ├── paul
│ │ │ ├── pedro
│ │ │ ├── quincy
│ │ │ ├── rob
│ │ │ ├── robert
│ │ │ ├── robosoft
│ │ │ ├── robosoft2
│ │ │ ├── robosoft3
│ │ │ ├── robosoft4
│ │ │ ├── robosoft5
│ │ │ ├── robosoft6
│ │ │ ├── robosoft7
│ │ │ ├── robosoft8
│ │ │ ├── sandro
│ │ │ ├── shelby
│ │ │ ├── steph
│ │ │ ├── steph2
│ │ │ ├── steph3
│ │ │ ├── travis
│ │ │ ├── victor
│ │ │ ├── whisper
│ │ │ ├── whisperf
│ │ │ └── zac
│ │ └── yue_dict
│ ├── java/
│ │ └── com/
│ │ └── k2fsa/
│ │ └── sherpa/
│ │ └── onnx/
│ │ └── tts/
│ │ └── engine/
│ │ ├── CheckVoiceData.kt
│ │ ├── Downloader.java
│ │ ├── GetSampleText.kt
│ │ ├── GithubStar.java
│ │ ├── InstallVoiceData.kt
│ │ ├── LangDB.java
│ │ ├── Language.java
│ │ ├── MainActivity.kt
│ │ ├── ManageLanguagesActivity.kt
│ │ ├── Migrate.java
│ │ ├── PreferenceHelper.kt
│ │ ├── ThemeUtil.java
│ │ ├── TtsEngine.kt
│ │ └── TtsService.kt
│ └── res/
│ ├── drawable/
│ │ ├── ic_add_24dp.xml
│ │ ├── ic_delete_24dp.xml
│ │ ├── ic_launcher_foreground.xml
│ │ ├── ic_launcher_foreground_monochrome.xml
│ │ ├── ic_play_24dp.xml
│ │ ├── ic_stop_24dp.xml
│ │ ├── rounded_frame_thin.xml
│ │ └── rounded_solid.xml
│ ├── layout/
│ │ ├── activity_manage_languages.xml
│ │ ├── dialog_install_custom_model.xml
│ │ └── list_item.xml
│ ├── mipmap-anydpi-v26/
│ │ └── ic_launcher.xml
│ ├── values/
│ │ ├── arrays.xml
│ │ ├── colors.xml
│ │ ├── ic_launcher_background.xml
│ │ ├── strings.xml
│ │ └── themes.xml
│ ├── values-cs/
│ │ └── strings.xml
│ ├── values-de/
│ │ └── strings.xml
│ ├── values-hu/
│ │ └── strings.xml
│ ├── values-it/
│ │ └── strings.xml
│ ├── values-pt-rBR/
│ │ └── strings.xml
│ ├── values-ro/
│ │ └── strings.xml
│ ├── values-ru/
│ │ └── strings.xml
│ ├── values-tr/
│ │ └── strings.xml
│ └── xml/
│ ├── data_extraction_rules.xml
│ └── tts_engine.xml
├── build.gradle.kts
├── fastlane/
│ └── metadata/
│ └── android/
│ ├── cs-CZ/
│ │ ├── full_description.txt
│ │ ├── short_description.txt
│ │ └── title.txt
│ ├── en-US/
│ │ ├── changelogs/
│ │ │ ├── 12.txt
│ │ │ ├── 13.txt
│ │ │ ├── 14.txt
│ │ │ ├── 15.txt
│ │ │ ├── 16.txt
│ │ │ ├── 17.txt
│ │ │ ├── 18.txt
│ │ │ ├── 19.txt
│ │ │ ├── 20.txt
│ │ │ ├── 21.txt
│ │ │ ├── 22.txt
│ │ │ ├── 23.txt
│ │ │ ├── 24.txt
│ │ │ ├── 25.txt
│ │ │ ├── 26.txt
│ │ │ ├── 27.txt
│ │ │ ├── 28.txt
│ │ │ ├── 29.txt
│ │ │ ├── 30.txt
│ │ │ └── 31.txt
│ │ ├── full_description.txt
│ │ ├── short_description.txt
│ │ └── title.txt
│ ├── hu-HU/
│ │ ├── full_description.txt
│ │ ├── short_description.txt
│ │ └── title.txt
│ ├── it-IT/
│ │ ├── full_description.txt
│ │ ├── short_description.txt
│ │ └── title.txt
│ ├── pt-BR/
│ │ ├── full_description.txt
│ │ └── short_description.txt
│ ├── ro/
│ │ ├── full_description.txt
│ │ ├── short_description.txt
│ │ └── title.txt
│ ├── ru-RU/
│ │ ├── full_description.txt
│ │ ├── short_description.txt
│ │ └── title.txt
│ └── tr-TR/
│ ├── full_description.txt
│ ├── short_description.txt
│ └── title.txt
├── gradle/
│ └── wrapper/
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── language.txt
└── settings.gradle.kts
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
*.iml
.gradle
/local.properties
./idea
/.idea/caches
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
.DS_Store
/build
/captures
.externalNativeBuild
.cxx
local.properties
/.idea/kotlinc.xml
================================================
FILE: LICENSE
================================================
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.
================================================
FILE: README.md
================================================
```
Google has announced that, starting in 2026/2027, all apps on certified Android devices
will require the developer to submit personal identity details directly to Google.
Since the developers of this app do not agree to this requirement, this app will no longer
work on certified Android devices after that time.
```
## Donate
<pre>Send a coffee to
woheller69@t-online.de
<a href= "https://www.paypal.com/signin"><img align="left" src="https://www.paypalobjects.com/webstatic/de_DE/i/de-pp-logo-150px.png"></a>
Or via this link (with fees)
<a href="https://www.paypal.com/donate?hosted_button_id=XVXQ54LBLZ4AA"><img align="left" src="https://img.shields.io/badge/Donate%20with%20Debit%20or%20Credit%20Card-002991?style=plastic"></a></pre>
# SherpaTTS
SherpaTTS is an Android Text-to-Speech engine based on Next-gen Kaldi. It uses voices from [Piper Voices](https://rhasspy.github.io/piper-samples/) or [Coqui](https://github.com/coqui-ai/TTS/).
<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/01.png" width="150"/> <img src="fastlane/metadata/android/en-US/images/phoneScreenshots/02.png" width="150"/>
[<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" height="75">](https://f-droid.org/de/packages/org.woheller69.ttsengine/) [<img src="https://www.openapk.net/images/openapk-badge.png" height="75">]( https://www.openapk.net/ttsengine/org.woheller69.ttsengine/)
## Installing Voice Models
### From Hugging Face
The app provides a built-in model downloader that lets you install Piper and Coqui voice models directly from the "Manage Languages" screen. Simply select a language and the app will download and install the model automatically.
Please note that this is the only instance where internet permission is required.
Once the model is downloaded, text-to-speech works entirely offline, ensuring your privacy and convenience.
Voices can be tested [here](https://huggingface.co/spaces/k2-fsa/text-to-speech/).
### From SD Card (Sideloading)
You can install custom Piper models directly from your device storage:
1. Open the app and go to "Manage Languages"
2. Tap "Install from SD Card"
3. Enter a 3-letter language code (e.g., `eng`, `deu`, `fra`)
4. Enter a model name (this will be displayed in the language list)
5. Select your model file (`.onnx` format)
6. Select your tokens file (`.txt` format)
7. Tap "OK"
**Requirements:**
- The model file must be in `.onnx` format (make sure the model has been converted a described here: [Sherpa ONNX conversion](https://k2-fsa.github.io/sherpa/onnx/tts/piper.html))
- The tokens file must contain the vocabulary mapping (typically `tokens.txt`)
### Via ADB (Alternative Method)
You can also install models via ADB:
1. Create a directory: `modelDir` in `sdcard/Android/data/org.woheller69.ttsengine/files`
2. Place 3 files there:
- `model.onnx` - The converted model file
- `tokens.txt` - The vocabulary file
- `lang` - A text file with:
- Line 1: 3-letter language code (e.g., `eng`)
- Line 2: Model name
At next start, the app will migrate it to the new directory structure and add it to installed languages.
Make sure the model has been converted a described here: [Sherpa ONNX conversion](https://k2-fsa.github.io/sherpa/onnx/tts/piper.html)
## Contribute
For translations use https://toolate.othing.xyz/projects/sherpatts/
# License
This work is licensed under GPLv3 license, © woheller69
- This app is based on the [Sherpa ONNX Project](https://github.com/k2-fsa/sherpa-onnx), published under Apache-2.0 license
- It uses data from [eSpeak NG](https://github.com/espeak-ng/espeak-ng), published under GPLv3 license
- It uses [jsoup](https://github.com/jhy/jsoup), published under MIT license
- At first start it downloads and installs a Piper or Coqui voice model from Hugging Face.
# OTHER APPS
| **RadarWeather** | **Gas Prices** | **Smart Eggtimer** |
|:---:|:---:|:--:|
| [<img src="https://github.com/woheller69/weather/blob/main/fastlane/metadata/android/en-US/images/icon.png" width="50">](https://f-droid.org/packages/org.woheller69.weather/) | [<img src="https://github.com/woheller69/spritpreise/blob/main/fastlane/metadata/android/en-US/images/icon.png" width="50">](https://f-droid.org/packages/org.woheller69.spritpreise/) | [<img src="https://github.com/woheller69/eggtimer/blob/main/fastlane/metadata/android/en-US/images/icon.png" width="50">](https://f-droid.org/packages/org.woheller69.eggtimer/) |
| **Bubble** | **hEARtest** | **GPS Cockpit** |
| [<img src="https://github.com/woheller69/Level/blob/master/fastlane/metadata/android/en-US/images/icon.png" width="50">](https://f-droid.org/packages/org.woheller69.level/) | [<img src="https://github.com/woheller69/audiometry/blob/new/fastlane/metadata/android/en-US/images/icon.png" width="50">](https://f-droid.org/packages/org.woheller69.audiometry/) | [<img src="https://github.com/woheller69/gpscockpit/blob/master/fastlane/metadata/android/en-US/images/icon.png" width="50">](https://f-droid.org/packages/org.woheller69.gpscockpit/) |
| **Audio Analyzer** | **LavSeeker** | **TimeLapseCam** |
| [<img src="https://github.com/woheller69/audio-analyzer-for-android/blob/master/fastlane/metadata/android/en-US/images/icon.png" width="50">](https://f-droid.org/packages/org.woheller69.audio_analyzer_for_android/) |[<img src="https://github.com/woheller69/lavatories/blob/master/fastlane/metadata/android/en-US/images/icon.png" width="50">](https://f-droid.org/packages/org.woheller69.lavatories/) | [<img src="https://github.com/woheller69/TimeLapseCamera/blob/master/fastlane/metadata/android/en-US/images/icon.png" width="50">](https://f-droid.org/packages/org.woheller69.TimeLapseCam/) |
| **Arity** | **Cirrus** | **solXpect** |
| [<img src="https://github.com/woheller69/arity/blob/master/fastlane/metadata/android/en-US/images/icon.png" width="50">](https://f-droid.org/packages/org.woheller69.arity/) | [<img src="https://github.com/woheller69/omweather/blob/master/fastlane/metadata/android/en-US/images/icon.png" width="50">](https://f-droid.org/packages/org.woheller69.omweather/) | [<img src="https://github.com/woheller69/solXpect/blob/main/fastlane/metadata/android/en-US/images/icon.png" width="50">](https://f-droid.org/packages/org.woheller69.solxpect/) |
| **gptAssist** | **dumpSeeker** | **huggingAssist** |
| [<img src="https://github.com/woheller69/gptassist/blob/master/fastlane/metadata/android/en-US/images/icon.png" width="50">](https://f-droid.org/packages/org.woheller69.gptassist/) | [<img src="https://github.com/woheller69/dumpseeker/blob/main/fastlane/metadata/android/en-US/images/icon.png" width="50">](https://f-droid.org/packages/org.woheller69.dumpseeker/) | [<img src="https://github.com/woheller69/huggingassist/blob/master/fastlane/metadata/android/en-US/images/icon.png" width="50">](https://f-droid.org/packages/org.woheller69.hugassist/) |
| **FREE Browser** | **whoBIRD** | **PeakOrama** |
| [<img src="https://github.com/woheller69/browser/blob/newmaster/fastlane/metadata/android/en-US/images/icon.png" width="50">](https://f-droid.org/packages/org.woheller69.browser/) | [<img src="https://github.com/woheller69/whoBIRD/blob/master/fastlane/metadata/android/en-US/images/icon.png" width="50">](https://f-droid.org/packages/org.woheller69.whobird/) | [<img src="https://github.com/woheller69/PeakOrama/blob/master/fastlane/metadata/android/en-US/images/icon.png" width="50">](https://f-droid.org/packages/org.woheller69.PeakOrama/) |
| **Whisper** | **Seamless** | **SherpaTTS** |
| [<img src="https://github.com/woheller69/whisperIME/blob/master/fastlane/metadata/android/en-US/images/icon.png" width="50">](https://f-droid.org/packages/org.woheller69.whisper/) | [<img src="https://github.com/woheller69/seamless/blob/master/fastlane/metadata/android/en-US/images/icon.png" width="50">](https://f-droid.org/packages/org.woheller69.seemless/) | [<img src="https://github.com/woheller69/ttsengine/blob/master/fastlane/metadata/android/en-US/images/icon.png" width="50">](https://f-droid.org/packages/org.woheller69.ttsengine/) |
================================================
FILE: app/.gitignore
================================================
/build
/release/output-metadata.json
================================================
FILE: app/build.gradle.kts
================================================
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
}
android {
namespace = "com.k2fsa.sherpa.onnx.tts.engine"
compileSdk = 35
defaultConfig {
applicationId = "org.woheller69.ttsengine"
minSdk = 29
targetSdk = 35
versionCode = 31
versionName = "3.1"
vectorDrawables {
useSupportLibrary = true
}
buildFeatures {
viewBinding = true
buildConfig = true
compose = true
}
}
buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
ndk {
abiFilters.addAll(listOf("armeabi-v7a", "arm64-v8a"))
}
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
composeOptions {
kotlinCompilerExtensionVersion = "1.5.1"
}
packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}
lint {
disable += "MissingTranslation"
}
}
dependencies {
implementation("androidx.core:core-ktx:1.12.0")
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.2")
implementation("androidx.activity:activity-compose:1.8.2")
implementation(platform("androidx.compose:compose-bom:2023.08.00"))
implementation("androidx.compose.ui:ui")
implementation("androidx.compose.ui:ui-graphics")
implementation("androidx.compose.ui:ui-tooling-preview")
implementation("androidx.compose.material3:material3")
implementation("androidx.appcompat:appcompat:1.6.1")
implementation("com.google.android.material:material:1.9.0")
implementation("com.github.k2-fsa:sherpa-onnx:v1.10.42")
implementation("androidx.preference:preference:1.2.1")
implementation("com.github.woheller69:FreeDroidWarn:+")
implementation("org.jsoup:jsoup:1.22.1")
}
================================================
FILE: app/proguard-rules.pro
================================================
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
================================================
FILE: app/src/main/AndroidManifest.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="false"
android:fullBackupContent="false"
android:dataExtractionRules="@xml/data_extraction_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/Theme.SherpaOnnxTtsEngine">
<activity
android:name=".GetSampleText"
android:exported="true"
android:theme="@style/Theme.SherpaOnnxTtsEngine">
<intent-filter>
<action android:name="android.speech.tts.engine.GET_SAMPLE_TEXT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".CheckVoiceData"
android:exported="true">
<intent-filter>
<action android:name="android.speech.tts.engine.CHECK_TTS_DATA" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".InstallVoiceData"
android:exported="true">
<intent-filter>
<action android:name="android.speech.tts.engine.INSTALL_TTS_DATA" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<service
android:name=".TtsService"
android:enabled="true"
android:exported="true"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.TTS_SERVICE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="android.speech.tts"
android:resource="@xml/tts_engine" />
</service>
<activity
android:name=".MainActivity"
android:exported="true"
android:label="@string/app_name"
android:theme="@style/Theme.SherpaOnnxTtsEngine">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.speech.tts.engine.CONFIGURE_ENGINE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".ManageLanguagesActivity"
android:theme="@style/Theme.SherpaOnnxTtsEngine"
android:screenOrientation="portrait"
android:exported="true">
</activity>
</application>
</manifest>
================================================
FILE: app/src/main/assets/.gitkeep
================================================
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/aav/vi
================================================
name Vietnamese (Northern)
language vi
words 1 2
pitch 95 175
tone 100 225 800 100 2000 50 5400 75 8000 200
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/aav/vi-VN-x-central
================================================
name Vietnamese (Central)
language vi-vn-x-central
phonemes vi-hue
dictrules 1
words 1
pitch 82 118 //80 118
voicing 90 //18
flutter 20
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/aav/vi-VN-x-south
================================================
name Vietnamese (Southern)
language vi-vn-x-south
phonemes vi-sgn
dictrules 2
words 1
pitch 82 118 //80 118
voicing 90 //18
flutter 20
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/art/eo
================================================
name Esperanto
language eo
apostrophe 2
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/art/ia
================================================
name Interlingua
language ia
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/art/io
================================================
name Ido
language io
phonemes eo
status testing
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/art/jbo
================================================
name Lojban
language jbo
speed 80 // speed adjustment, percentage
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/art/lfn
================================================
name Lingua Franca Nova
language lfn
phonemes base2
l_unpronouncable 0
numbers 2 3
stressLength 150 140 180 180 0 0 200 200
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/art/piqd
================================================
name Klingon
language piqd
status testing
stressRule 3
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/art/py
================================================
name Pyash
language py
maintainer Logan Streondj <logan@liberit.ca>
status testing
speed 80 // speed adjustment, percentage
stressRule 0
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/art/qdb
================================================
name Lang Belta
language qdb
numbers 4 3
replace 1 t ?
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/art/qya
================================================
name Quenya
language qya
stressRule 2
// rule=penultimate, with qya_rules for light penultimate syllables to move primary stress to the preceding (antepenultimate) syllable
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/art/sjn
================================================
name Sindarin
language sjn
stressRule 2
// rule=penultimate, with sjn_rules for light penultimate syllables to move primary stress to the preceding (antepenultimate) syllable
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/azc/nci
================================================
name Nahuatl (Classical)
language nci
intonation 3
stressRule 2
stressLength 190 190 200 200 0 0 220 240
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/bat/lt
================================================
name Lithuanian
language lt
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/bat/ltg
================================================
name Latgalian
language ltg
maintainer Valdis Vitolins <valdis.vitolins@odo.lv>
status testing
phonemes lv
dictionary lv
dictrules 2 // Setting for Latgalian pronunciation
words 0 2
pitch 64 118
tone 60 150 204 100 400 255 700 10 3000 255
stressAmp 12 10 8 8 0 0 15 16
stressLength 160 140 200 140 0 0 240 160
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/bat/lv
================================================
name Latvian
language lv
maintainer Valdis Vitolins <valdis.vitolins@odo.lv>
status mature
words 0 2
pitch 67 123
tone 60 150 204 100 400 255 700 10 3000 255
stressAmp 11 8 11 9 0 0 14 12
stressLength 160 120 200 130 0 0 230 180
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/bnt/sw
================================================
name Swahili
language sw
status testing
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/bnt/tn
================================================
name Setswana
language tn
status testing
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/ccs/ka
================================================
name Georgian
language ka
lowercaseSentence // A period followed by a lowercase letter is considered a sentence (mkhedruli)
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/cel/cy
================================================
name Welsh
language cy
intonation 4
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/cel/ga
================================================
name Gaelic (Irish)
language ga
dictrules 1 // fix for eclipsis
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/cel/gd
================================================
name Gaelic (Scottish)
language gd
status testing
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/cus/om
================================================
name Oromo
language om
status testing
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/dra/kn
================================================
name Kannada
language kn
intonation 2
//consonants 80
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/dra/ml
================================================
name Malayalam
language ml
intonation 2
//consonants 80
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/dra/ta
================================================
name Tamil
language ta
intonation 2
consonants 80
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/dra/te
================================================
name Telugu
language te
status testing
intonation 2
//consonants 80
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/esx/kl
================================================
name Greenlandic
language kl
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/eu
================================================
name Basque
language eu
status testing
stressRule 15
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/gmq/da
================================================
name Danish
language da
tunes s2 c2 q2 e2
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/gmq/is
================================================
name Icelandic
language is
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/gmq/nb
================================================
name Norwegian Bokmål
language nb
language no
phonemes no
dictionary no
intonation 4
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/gmq/sv
================================================
name Swedish
language sv
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/gmw/af
================================================
name Afrikaans
language af
maintainer Christo de Klerk <christodeklerk@gmail.com>
status mature
roughness 0
pitch 63 120
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/gmw/de
================================================
name German
language de
tunes s4 c1 q4 e1
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/gmw/en
================================================
name English (Great Britain)
language en-gb 2
language en 2
maintainer Reece H. Dunn <msclrhd@gmail.com>
status mature
tunes s1 c1 q1 e1
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/gmw/en-029
================================================
name English (Caribbean)
language en-029
language en 10
maintainer Reece H. Dunn <msclrhd@gmail.com>
status mature
phonemes en-wi
dictrules 8
stressLength 175 175 175 175 220 220 250 290
replace 00 D d
replace 00 T t[
replace 00 U@ o@
replace 03 @ a#
replace 03 3 a#
replace 03 N n
formant 1 98 100 100
formant 2 98 100 100
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/gmw/en-GB-scotland
================================================
name English (Scotland)
language en-gb-scotland
language en 4
maintainer Reece H. Dunn <msclrhd@gmail.com>
status mature
phonemes en-sc
dictrules 2 5 6 7
stressLength 180 130 200 200 0 0 250 270
replace 03 @ V
replace 03 I i
replace 03 I2 i
replace 01 aI aI2
replace 02 a a/
replace 02 u: U
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/gmw/en-GB-x-gbclan
================================================
name English (Lancaster)
language en-gb-x-gbclan
language en-gb 3
language en 5
maintainer Reece H. Dunn <msclrhd@gmail.com>
status mature
phonemes en-n
stressLength 160 150 180 180 220 220 290 290
replace 03 N n
replace 03 i I2
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/gmw/en-GB-x-gbcwmd
================================================
name English (West Midlands)
language en-gb-x-gbcwmd
language en-gb 9
language en 9
phonemes en-wm
replace 00 h NULL
replace 00 o@ O@
dictrules 6
intonation 4
stressAdd 0 0 0 0 0 0 0 20
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/gmw/en-GB-x-rp
================================================
name English (Received Pronunciation)
language en-gb-x-rp
language en-gb 4
language en 5
maintainer Reece H. Dunn <msclrhd@gmail.com>
status mature
phonemes en-rp
replace 00 o@ O@
replace 03 I i
replace 03 I2 i
replace 03 @ a#
replace 03 3 a#
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/gmw/en-US
================================================
name English (America)
language en-us 2
language en 3
maintainer Reece H. Dunn <msclrhd@gmail.com>
status mature
phonemes en-us
dictrules 3 6
stressLength 140 120 190 170 0 0 255 300
stressAmp 17 16 19 19 19 19 21 19
replace 03 I i
replace 03 I2 i
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/gmw/en-US-nyc
================================================
name English (America, New York City)
language en-us-nyc
maintainer Richard Calvi <richard.calvi@gmail.com>
status testing
phonemes en-us-nyc
dictrules 3 6
stressLength 140 120 190 170 0 0 255 300
stressAmp 17 16 19 19 19 19 21 19
replace 03 I i
replace 03 I2 i
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/gmw/lb
================================================
name Luxembourgish
language lb
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/gmw/nl
================================================
name Dutch
language nl
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/grk/el
================================================
name Greek
language el
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/grk/grc
================================================
name Greek (Ancient)
language grc
stressLength 170 170 190 190 0 0 230 240
dictrules 1
words 3
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/inc/as
================================================
name Assamese
language as
status testing
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/inc/bn
================================================
name Bengali
language bn
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/inc/bpy
================================================
name Bishnupriya Manipuri
language bpy
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/inc/gu
================================================
name Gujarati
language gu
status testing
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/inc/hi
================================================
name Hindi
language hi
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/inc/kok
================================================
name Konkani
language kok
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/inc/mr
================================================
name Marathi
language mr
status testing
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/inc/ne
================================================
name Nepali
language ne
dictrules 1
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/inc/or
================================================
name Oriya
language or
status testing
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/inc/pa
================================================
name Punjabi
language pa
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/inc/sd
================================================
name Sindhi
language sd
maintainer Ejaz Shah <eashah67@gmail.com>
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/inc/si
================================================
name Sinhala
language si
status testing
intonation 2
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/inc/ur
================================================
name Urdu
language ur
maintainer Ejaz Shah <eashah67@gmail.com>
status testing
stressRule 6
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/ine/hy
================================================
name Armenian (East Armenia)
language hy
language hy-arevela
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/ine/hyw
================================================
name Armenian (West Armenia)
language hyw
language hy-arevmda
language hy 8
dictionary hy
dictrules 1
phonemes hy
// change consonants for West Armenian pronunciation
replace 00 b p#
replace 00 d t#
replace 00 dz ts#
replace 00 dZ tS#
replace 00 g k#
replace 00 p b
replace 00 t d
replace 00 ts dz
replace 00 tS dZ
replace 00 k g
replace 00 R2 R // ??
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/ine/sq
================================================
name Albanian
language sq
// add this line to remove 'ë' at the end of words
// replace 00 @/ NULL
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/ira/fa
================================================
name Persian
language fa
maintainer Shadyar Khodayari <shadyar81@gmail.com>
status mature
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/ira/fa-Latn
================================================
name Persian (Pinglish)
// Sometimes, Farsi speakers write Farsi words using English characters, particularly in Chat and SMS (texte messages).), called Pinglish
language fa-latn
maintainer Shadyar Khodayari <shadyar81@gmail.com>
status mature
dictrules 1
phonemes fa
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/ira/ku
================================================
name Kurdish
language ku
//words 1 48
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/iro/chr
================================================
name Cherokee //https://github.com/espeak-ng/espeak-ng/blob/master/docs/voices.md
language chr-US-Qaaa-x-west 5
maintainer Michael Conrad <m.conrad.202@gmail.com>
status testing
pitch 90 160
voicing 100
consonants 100 100
speed 100
words 2 1
phonemes chr
//stress on all syllables to simulate stress on no syllables
stressRule 9
stressLength 175 175 175 175 175 175 175 175 //all vowels the same length regardless of stress
stressAmp 10 10 10 10 10 10 10 10 //all vowels the same strength regardless of marked stress
intonation 1
tunes chrs chrc chrq chre
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/itc/la
================================================
name Latin
language la
stressRule 2 0 2
// rule=penultimate
// unstressed_wd1=0
// unstressed_wd2=2
stressOpt 0 5 // flags=0100001 (no automatic secondary stress + don't stres monosyllables)
// short gap between words
words 2
// Note: The Latin voice needs long vowels to be marked with macrons
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/jpx/ja
================================================
name Japanese
language ja
phonemes ja
intonation 4
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/ko
================================================
name Korean
language ko
pitch 80 118
intonation 2
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/map/haw
================================================
name Hawaiian
language haw
status testing
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/miz/mto
================================================
name Totontepec Mixe
language mto
maintainer Bill Dengler <codeofdusk@gmail.com> and Elizabeth Resendiz <e.r.resendiz7@gmail.com>
status testing
lowercaseSentence
tunes s6 c6 q6 e6
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/myn/quc
================================================
name K'iche'
language quc
status testing
stressRule 3 // stress on final syllable
stressAmp 8 8 20 15 0 0 25 25 // reduce unstressed vowels
stressLength 120 120 200 150 0 0 250 250 // reduce unstressed vowels
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/poz/id
================================================
name Indonesian
language id
stressLength 160 200 180 180 0 0 220 240
stressAmp 16 18 18 18 0 0 22 21
consonants 80 80
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/poz/mi
================================================
name Māori
language mi
status testing
// https://github.com/espeak-ng/espeak-ng/blob/master/docs/voices.md#words
words 1 2
// taken from Jacky
pitch 115 130
formant 0 150 155 100
formant 1 90 155 70
formant 2 95 70 64
formant 3 15 20 30
formant 4 20 30 40
formant 5 65 20 65
formant 6 70 80 100
formant 7 20 80 100
formant 8 100 95 80
voicing 135
consonants 110
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/poz/ms
================================================
// Last updated: 14 October 2010, Jason Ong (jason@portalgroove.com)
name Malay
language ms
phonemes id
stressLength 160 200 180 180 0 0 220 240
stressAmp 16 18 18 18 0 0 22 21
intonation 3 // Less intonation, and comma does not raise the pitch.
// Nuance - Peninsula Malaysia
// replace 3 a @ // change 'saya' to 'saye'
// (only the last phoneme of a word, only in unstressed syllables)
consonants 80 80
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/qu
================================================
name Quechua
language qu
stressRule 2 // stress on penultimate syllable
status testing
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/roa/an
================================================
name Aragonese
language an
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/roa/ca
================================================
name Catalan
language ca
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/roa/es
================================================
name Spanish (Spain)
language es
dictrules 1
tunes s6 c6 q6 e6
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/roa/es-419
================================================
name Spanish (Latin America)
language es-419
language es-mx 6
phonemes es-la
dictrules 2
intonation 2
stressLength 170 200 230 180 0 0 250 280
tunes s6 c6 q6 e6
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/roa/fr
================================================
name French (France)
language fr-fr
language fr
dictrules 1
tunes s3 c3 q3 e3
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/roa/fr-BE
================================================
name French (Belgium)
language fr-be
language fr 8
dictrules 2
tunes s3 c3 q3 e3
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/roa/fr-CH
================================================
name French (Switzerland)
language fr-ch
language fr 8
dictrules 3
tunes s3 c3 q3 e3
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/roa/ht
================================================
name Haitian Creole
language ht
status testing
maintainer // TODO somebody should take responsibility for this
phonemes ht
dictionary ht
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/roa/it
================================================
name Italian
language it
maintainer Christian Leo M <llajta2012@gmail.com>
status mature
tunes s4 c4 q4 e4
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/roa/pap
================================================
name Papiamento
language pap
status testing
phonemes base2
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/roa/pt
================================================
name Portuguese (Portugal)
language pt
language pt-pt
phonemes pt-pt
dictrules 1
intonation 2
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/roa/pt-BR
================================================
name Portuguese (Brazil)
language pt-br
language pt 6
dictrules 2
stressLength 200 115 230 230 0 0 250 270
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/roa/ro
================================================
name Romanian
language ro
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/sai/gn
================================================
name Guarani
language gn
dictrules 1
words 0 1
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/sem/am
================================================
name Amharic
language am
status testing
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/sem/ar
================================================
name Arabic
language ar
phonemes ar
stressRule 4
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/sem/he
================================================
name Hebrew
language he
status testing
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/sem/mt
================================================
name Maltese
language mt
status testing
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/sit/cmn
================================================
name Chinese (Mandarin, latin as English)
language cmn
language zh-cmn
language zh
phonemes cmn
dictionary cmn
words 1
pitch 80 118
dict_min 100000
//for some dialects
//[en]: replace ng with n
//[zh]: ��������ng���n
//replace 0 N n
//[en]: replace rfx consonants
//[zh]: ��������r���l��z��er���e
//replace 0 ts.h tsh
//replace 0 ts. ts
//replace 0 s. s
//replace 0 i. i[
//replace 0 z. l
//replace 0 z. z
//replace 0 @r @
//[en]: replace beginning n or l
//[zh]: ����nl��n���l��l���n
//replace 2 n l
//replace 2 l n
//[en]: replace beginning w with v
//[zh]: w���v
//replace 0 w v
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/sit/cmn-Latn-pinyin
================================================
name Chinese (Mandarin, latin as Pinyin)
language cmn-latn-pinyin
language zh-cmn
language zh
phonemes cmn
dictionary cmn
words 1
pitch 80 118
dict_min 100000
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/sit/hak
================================================
name Hakka Chinese
language hak
maintainer Chen Chien-ting <yoxem.tem98@nctu.edu.tw>
status testing
phonemes hak
dictionary hak
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/sit/my
================================================
name Myanmar (Burmese)
maintainer Min Maung
language my
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/sit/yue
================================================
name Chinese (Cantonese)
language yue
language zh-yue
language zh 8
phonemes yue
dictionary yue
// interpret English letters as 1=English words, 2=jyutping
dictrules 1
words 1
dict_min 10000
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/sit/yue-Latn-jyutping
================================================
name Chinese (Cantonese, latin as Jyutping)
language yue
language zh-yue
language zh 8
phonemes yue
dictionary yue
// interpret English letters as 1=English words, 2=jyutping
dictrules 2
words 1
dict_min 10000
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/tai/shn
================================================
name Shan (Tai Yai)
language shn
maintainer ronaldaug <contact@ronaldaug.ml>
status testing
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/tai/th
================================================
name Thai
language th
status testing
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/trk/az
================================================
name Azerbaijani
language az
status testing
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/trk/ba
================================================
name Bashkir
language ba
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/trk/cv
================================================
name Chuvash
language cv
status testing
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/trk/kk
================================================
name Kazakh
language kk
status testing
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/trk/ky
================================================
name Kyrgyz
language ky
tunes s3 c3 q3 e3
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/trk/nog
================================================
name Nogai
language nog
status testing
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/trk/tk
================================================
name Turkmen
language tk
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/trk/tr
================================================
name Turkish
language tr
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/trk/tt
================================================
name Tatar
language tt
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/trk/ug
================================================
name Uyghur
language ug
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/trk/uz
================================================
name Uzbek
language uz
status testing
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/urj/et
================================================
name Estonian
language et
stressAmp 18 16 22 22 20 22 22 22
stressLength 150 180 200 200 0 0 210 250
stressOpt 1 2 4 6 // (S_NO_DIM + S_FINAL_DIM = S_FINAL_DIM_ONLY), S_FINAL_NO_2, S_2_TO_HEAVY
stressRule 0
intonation 3
spellingStress
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/urj/fi
================================================
name Finnish
language fi
stressAmp 18 16 22 22 20 22 22 22
stressLength 150 180 200 200 0 0 210 250
stressOpt 1 2 4 6 // (S_NO_DIM + S_FINAL_DIM = S_FINAL_DIM_ONLY), S_FINAL_NO_2, S_2_TO_HEAVY
stressRule 0
intonation 3
spellingStress
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/urj/hu
================================================
name Hungarian
language hu
brackets 0
bracketsAnnounced 0
pitch 81 117
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/urj/smj
================================================
name Lule Saami
language smj
status testing
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/zle/be
================================================
name Belarusian
language be
dict_min 2000
speed 95
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/zle/ru
================================================
name Russian
language ru
replace 03 a a#
dict_min 20000
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/zle/ru-LV
================================================
name Russian (Latvia)
language ru-lv 2
maintainer Valdis Vitolins <valdis.vitolins@odo.lv>
status testing
phonemes ru-lv
dictrules 2
dict_min 20000
speed 95
words 0 2
tone 150 220 450 255 750 20 3500 255
stressAmp 12 10 8 8 0 0 16 17
stressLength 160 140 200 140 0 0 240 160
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/zle/ru-cl
================================================
name Russian (Classic)
language ru-cl
replace 03 a a#
dict_min 20000
speed 95
dictrules 3
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/zle/uk
================================================
name Ukrainian
language uk
maintainer Andrij Mizyk <andm1zyk@proton.me>
status testing
speed 80
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/zls/bg
================================================
name Bulgarian
language bg
stressAmp 13 12 17 17 20 22 22 21
stressLength 180 170 200 200 200 200 210 220
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/zls/bs
================================================
name Bosnian
language bs
phonemes hr
pitch 81 120
formant 0 100 100 100
formant 1 97 97 100
formant 2 97 97 100
formant 3 97 102 100
formant 4 97 102 100
formant 5 97 102 100
stressAdd 10 10 0 0 0 0 -30 -30
dictrules 3 4
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/zls/hr
================================================
name Croatian
language hr
language hbs
// attributes towards !variant3
pitch 81 120
formant 0 100 100 100
formant 1 97 97 100
formant 2 97 97 100
formant 3 97 102 100
formant 4 97 102 100
formant 5 97 102 100
stressAdd 10 10 0 0 0 0 -30 -30
dictrules 1
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/zls/mk
================================================
name Macedonian
language mk
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/zls/sl
================================================
name Slovenian
language sl
status testing
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/zls/sr
================================================
name Serbian
language sr
// attributes towards !variant3 pitch 80 120
formant 0 100 100 100
formant 1 97 97 100
formant 2 97 97 100
formant 3 97 102 100
formant 4 97 102 100
formant 5 97 102 100
stressAdd 10 10 0 0 0 0 -30 -30
dictrules 2 4
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/zlw/cs
================================================
name Czech
language cs
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/zlw/pl
================================================
name Polish
language pl
intonation 2
================================================
FILE: app/src/main/assets/espeak-ng-data/lang/zlw/sk
================================================
name Slovak
language sk
================================================
FILE: app/src/main/assets/espeak-ng-data/phondata-manifest
================================================
# This file lists the type of data that has been compiled into the
# phondata file
#
# The first character of a line indicates the type of data:
# S - A SPECT_SEQ structure
# W - A wavefile segment
# E - An envelope
#
# Address is the displacement within phondata of this item
#
# Address Data file
# ------- ---------
W 0x00008 ustop/null
S 0x00158 vowel/@
S 0x0021c vowel/@-
S 0x002e0 vowel/a
S 0x003e4 vowel/e
S 0x004e8 vowel/i
S 0x005ec vowel/oo
S 0x006f0 vowel/u
S 0x007f4 klatt/m-syl
S 0x008f8 m/m-syl
S 0x009bc klatt/n-syl
S 0x00ac0 n/n-syl
S 0x00b84 nn/nn-syl
W 0x00cc8 ustop/percus10
S 0x00ed4 vowelr/r-voc
S 0x01018 vwl_hi/l-voc
S 0x0111c r/r@
S 0x011e0 r/ra
S 0x012a4 r/re
S 0x01368 r/ri
S 0x0142c r/ro
S 0x014f0 r/ru
S 0x015b4 r/xr
S 0x01638 r/_r
S 0x016fc r/tr
S 0x01780 r/r
S 0x01844 r3/r_n
W 0x018c8 r3/rx
S 0x02c20 r/trr
S 0x02ce4 r/rr
S 0x02da8 r3/r_
S 0x02e2c r3/r_trill2
W 0x02ef0 r3/r_trill2.wav
S 0x035fc r3/r_trill
W 0x03700 r3/r_trill.wav
W 0x0416c r3/r_trill3.wav
S 0x045b0 r3/r_uvl
W 0x046b4 r3/r_uvl.wav
S 0x055bc l/l@
S 0x05680 l/la
S 0x05704 l/le
S 0x05788 l/li
S 0x0584c l/lo
S 0x05950 l/lu
S 0x05a14 l/L1_@L
S 0x05b18 l/L1_aL
S 0x05c1c l/L1_eL
S 0x05ce0 l/L1_iL
S 0x05de4 l/L1_oL
S 0x05f28 l/L1_uL
S 0x0602c l/l_
S 0x060b0 l/xl
S 0x06134 l/_l
S 0x061f8 l/tl
S 0x0627c l/l_long
S 0x06300 l/l
S 0x06384 l/L2_eL
S 0x06448 l/L2_uL
S 0x0654c l/L2_@L
S 0x06650 l/L2_aL
S 0x06754 l/L2_iL
S 0x06858 l/L2_oL
S 0x0699c l/l_@
S 0x06a20 l/l_a
S 0x06aa4 l/l_e
S 0x06b28 l/l_i
S 0x06bec l/l_o
S 0x06cb0 l/l_u
S 0x06d34 l^/j2@
S 0x06df8 l^/j2a
S 0x06ebc l^/j2e
S 0x06f80 l^/j2i
S 0x07044 l^/j2o
S 0x07148 l^/j2u
S 0x0724c l^/_l^
S 0x07350 l^/l^
S 0x07454 l^/l_rfx
S 0x07518 ll/xll
S 0x075dc ll/_ll
S 0x076e0 ll/ll
S 0x077a4 w/w@
S 0x07868 w/wa
S 0x0792c w/we
S 0x079f0 w/wi
S 0x07ab4 w/wo
S 0x07b78 w/wu
S 0x07c3c w/xw
S 0x07cc0 w/w
S 0x07d44 w/_w
S 0x07e08 w/iw_
S 0x07f0c w/w_
S 0x07fd0 j/j@
S 0x080d4 j/ja
S 0x081d8 j/je
S 0x082dc j/ji
S 0x083a0 j/jo
S 0x084e4 j/ju
S 0x085a8 j/xj
S 0x0862c j/_j
S 0x086b0 j/j_
S 0x08774 j2/j2@
S 0x08838 j2/j2a
S 0x088fc j2/j2e
S 0x089c0 j2/j2i
S 0x08a84 j2/j2o
S 0x08b88 j2/j2u
S 0x08c4c j2/xj2
S 0x08cd0 j2/_j2
S 0x08d54 klatt/m_
S 0x08e58 klatt/m
S 0x08f5c m/m@
S 0x09060 m/ma
S 0x09164 m/me
S 0x09268 m/mi
S 0x093ac m/mo
S 0x094b0 m/mu
S 0x095b4 m/mj
S 0x09678 m/_m
S 0x096fc m/m_
S 0x097c0 klatt/n
S 0x098c4 n/n@
S 0x099c8 n/na
S 0x09acc n/ne
S 0x09bd0 n/ni
S 0x09cd4 n/no
S 0x09dd8 n/nu
S 0x09edc n/nj
S 0x09fa0 n/_n
S 0x0a024 n/n_
S 0x0a0e8 klatt/nr
S 0x0a1ec n/nr@
S 0x0a2f0 n/nra
S 0x0a3f4 n/nre
S 0x0a4f8 n/nri
S 0x0a5fc n/nro
S 0x0a700 n/nru
S 0x0a804 n/_nr
S 0x0a888 n/nr_
S 0x0a94c klatt/n^@
S 0x0a9d0 klatt/n^
S 0x0aad4 n^/n^@
S 0x0ac58 n^/n^a
S 0x0ad9c n^/n^e
S 0x0af20 n^/n^i
S 0x0b0a4 n^/n^o
S 0x0b268 n^/n^u
S 0x0b3ec n^/_n^
S 0x0b470 n^/n^_
S 0x0b5b4 klatt/nn_
S 0x0b6b8 klatt/nn
S 0x0b7bc nn/nn@
S 0x0b880 nn/nna
S 0x0b944 nn/nne
S 0x0ba08 nn/nni
S 0x0bacc nn/nno
S 0x0bb90 nn/nnu
S 0x0bc54 nn/inn
S 0x0bd18 nn/nnj
S 0x0bd9c nn/_nn
S 0x0be20 nn/nn_
S 0x0bee4 r3/@tap2
S 0x0c028 r3/@tap
S 0x0c16c d/tap1
S 0x0c230 d/tap3
S 0x0c334 d/dr
S 0x0c3b8 r3/@tap_rfx_
S 0x0c4fc r3/@tap_rfx
S 0x0c640 b/xb
S 0x0c704 klatt/b
W 0x0c7c8 x/b_
W 0x0cbe0 x/b
S 0x0cd44 b/b_
S 0x0ce08 b/b@2
S 0x0cf0c b/b@
S 0x0d010 b/ba
S 0x0d114 b/be
S 0x0d218 b/bi
S 0x0d31c b/bo
S 0x0d420 b/bu
S 0x0d524 b/b
S 0x0d628 d/xd
S 0x0d6ec d/d_
W 0x0d7b0 x/d_
S 0x0dbd8 d/d
W 0x0dc9c x/d
W 0x0deb8 x/d_dnt
S 0x0e19c dzh/xdzh
S 0x0e260 dzh/dzh_
W 0x0e324 x/dzh_
S 0x0ed5c dzh/dzh
W 0x0ee20 x/dzh
W 0x0f22c x/dz_pzd
S 0x0f68c dzh/xdz_pzd
S 0x0f750 klatt/dz_pzd_
S 0x0f814 klatt/dz_pzd
S 0x0f8d8 dzh/dz_pzd_
S 0x0f99c dzh/dz_pzd
S 0x0fa60 g/xg
S 0x0fb24 g/g_
W 0x0fbe8 x/g_
S 0x0ffa8 g/g
W 0x1006c x/g2
S 0x102f4 klatt/v_
W 0x103b8 vocw/v
S 0x10cb8 klatt/bh
S 0x10d7c voc/v_
S 0x10e40 voc/bh
S 0x10f04 klatt/v
S 0x10fc8 voc/v
S 0x110cc voc/v#_
S 0x11190 voc/v#
S 0x11294 voc/dh_
W 0x11358 vocw/dh
S 0x11c60 voc/dh
S 0x11d24 voc/z_
W 0x11de8 ufric/s_
S 0x1289c voc/z
S 0x12960 klatt/zh_
W 0x12a24 vocw/zh
S 0x1338c klatt/zh
S 0x13450 voc/zh_
S 0x13514 voc/zh
W 0x135d8 vocw/zh_rfx
S 0x13e68 voc/z_pzd_
W 0x13f2c ufric/s_pzd_
S 0x14a30 voc/z_pzd
W 0x14af4 ufric/s_pzd
W 0x1542c ufric/sh_pzd_
W 0x15ef4 ufric/sh_pzd
S 0x16828 voc/j
W 0x1692c ufric/ch
S 0x17044 klatt/qqh_
W 0x17108 vocw/Q_
S 0x17914 klatt/qqh
W 0x179d8 vocw/Q
S 0x181e4 voc/Q_
S 0x182a8 voc/Q
S 0x1836c voc/Q_ulv
W 0x18470 ufric/xx
W 0x18f6c ustop/p_
W 0x1977c ustop/pr
W 0x19bc4 ustop/p_unasp
W 0x19ef0 ustop/pl
W 0x1a2e8 ustop/p
W 0x1a658 ustop/t_
W 0x1ab18 ustop/tr
W 0x1b278 ustop/t_dnt
W 0x1b688 ustop/t
W 0x1babc ustop/t_hi
W 0x1bd88 ustop/tsh_
W 0x1c6c8 ustop/tsh
W 0x1cd08 ustop/ts_pzd
W 0x1d40c ustop/t_pzd
W 0x1d858 ustop/c
W 0x1db08 ustop/k_
W 0x1dfc4 ustop/kr
W 0x1e604 ustop/ki
W 0x1ebcc ustop/kl
W 0x1f1fc ustop/k_unasp
W 0x1f6d0 ustop/k
W 0x1fba4 ustop/q
W 0x1fd10 ustop/q_u
W 0x1fe30 ufric/f_
W 0x20900 ufric/f
W 0x210f0 ufric/th_
W 0x21970 ufric/th
W 0x22208 ufric/s!
W 0x22ab8 ufric/s
W 0x23258 ufric/sh_
W 0x23d08 ufric/sh
W 0x246b8 ufric/sh_rfx
W 0x25054 ufric/l#
W 0x25a98 ufric/ch_
W 0x263c0 ufric/x_
W 0x26f1c ufric/x_hr
W 0x27830 h/h@
W 0x27d84 h/ha
W 0x28400 h/he
W 0x28a94 h/hi
W 0x2902c h/ho
W 0x296e8 h/hu
W 0x29e0c h/h_
W 0x2a4b8 ustop/ts_
W 0x2ae18 ustop/ts
S 0x2b874 d/xdz
W 0x2b938 ustop/p_unasp_
W 0x2ba74 ustop/p_asp
W 0x2bf78 ustop/t_short
W 0x2c1bc ustop/ts_pzd_
W 0x2c680 ustop/ts_pzd2
W 0x2c9b4 ustop/k_asp
W 0x2d0b8 ustop/k_asp_e
W 0x2d820 ustop/k_asp_a
W 0x2e0a4 ufric/s_continue
S 0x2e854 vowel/a#
S 0x2e958 vowel/a_2
S 0x2ea5c vowel/ee_1
S 0x2eba0 vowel/o
S 0x2ece4 vowel/oo_4
S 0x2ede8 vowel/u_bck
S 0x2eeec vowel/uu_2
S 0x2eff0 vowel/y
S 0x2f134 vowel/y#
S 0x2f238 vdiph/au_4
S 0x2f3bc vdiph/eu
S 0x2f500 vdiph2/iu
S 0x2f684 vdiph/ai
S 0x2f7c8 vdiph/ei
S 0x2f90c vdiph/eei
S 0x2fa90 vdiph/oi
S 0x2fc54 vdiph/ui
S 0x2fd98 w/w2
W 0x2fe5c ustop/t_dnt2
S 0x300b4 vowel/ii_5
S 0x301b8 vowel/e_mid2
S 0x302bc vowel/ii#_2
S 0x303c0 vdiph/ai_5
S 0x30504 vowel/a_6
S 0x30608 vdiph/@i_2
S 0x3074c vowel/@_3
S 0x30810 vowel/o-_4
S 0x30914 vowel/u_2
W 0x30a18 ustop/tsh_unasp
W 0x30ed8 ustop/k_ejc
W 0x31688 vwl_ar/hah
W 0x325ec vwl_ar/dhad
W 0x3364c vwl_ar/shin
S 0x34428 vowel/aa_7
S 0x3452c vowel/u_7
S 0x34630 vowel/ii#
S 0x34734 vowel/oe
S 0x34838 vowel/o_mid
S 0x3493c vowel/@_2
S 0x34a40 vowel/ee
S 0x34b44 vowel/aa_8
S 0x34c48 vowel/0_3
S 0x34d4c vowel/e_6
S 0x34e50 vowel/ii
E 0x34f54 envelope/i_risefall
E 0x34fd4 envelope/p_fall
E 0x35054 envelope/p_214
E 0x350d4 envelope/p_rise
E 0x35154 envelope/p_level
S 0x351d4 n/n_long_
S 0x35298 nn/nn2_
W 0x3535c ustop/t_unasp2
W 0x35468 ustop/k_unasp_
W 0x35724 ustop/tsh_pzd_unasp
W 0x35f74 ustop/tsh_pzd
W 0x36ab4 ufric/sh_pzd2
W 0x37604 ustop/ts_unasp
W 0x37e7c ustop/ts_rfx_unasp
W 0x38a68 ustop/ts_rfx
S 0x39748 vwl_zh/a_n
S 0x3984c vowel/aa_2
S 0x399d0 vowel/a_3
S 0x39ad4 vdiph/ai_6
S 0x39c98 vwl_zh/aau
S 0x39ddc vowel/@_bck
S 0x39ee0 vowel/3_2
S 0x3a024 vowelr/V3_r
S 0x3a168 vowel/ee_2
S 0x3a26c vdiph2/ei_4
S 0x3a3b0 vowel/ii_2
S 0x3a4b4 vowel/i#_7
S 0x3a5b8 vowel/i#_6
S 0x3a6bc vwl_zh/iaa
S 0x3a800 vwl_zh/iaau
S 0x3a984 vwl_zh/ie
S 0x3aac8 vdiph2/iioo
S 0x3ac0c vwl_zh/iou
S 0x3ad90 vnasal/oo_n2
S 0x3aed4 vdiph2/o_oo
S 0x3b018 vowel/8
S 0x3b11c vdiph/8u
S 0x3b260 vwl_zh/ong
S 0x3b3e4 vnasal/u_n
S 0x3b4e8 vwl_zh/uaa
S 0x3b62c vdiph2/oa
S 0x3b770 vwl_zh/uai
S 0x3b8f4 vdiph2/o@
S 0x3ba78 vwl_zh/uei
S 0x3bbfc vwl_zh/uo
S 0x3bd80 vowel/uu_3
S 0x3be44 vowel/y_2
S 0x3bf88 vdiph2/yu
S 0x3c10c vwl_zh/y&
S 0x3c250 vwl_zh/yee
S 0x3c394 vdiph2/y@
S 0x3c4d8 vdiph/yi
S 0x3c61c vowel/ii_3
S 0x3c720 vowel/oo_2
S 0x3c824 vowel/i#
S 0x3c928 vowel/o_2
S 0x3ca6c vdiph/aai_2
S 0x3cc30 vdiph/ai_2
S 0x3cdf4 vdiph2/iu_4
S 0x3cf38 vdiph/ooi
S 0x3d0fc vdiph/ui_3
S 0x3d280 vowel/a#_3
S 0x3d384 r/a_
S 0x3d448 vowel/i_4
S 0x3d54c vowel/&
S 0x3d650 vowel/a_8
S 0x3d754 vowel/o_5
S 0x3d858 vowel/V_4
S 0x3d95c vowel/yy
S 0x3da60 vowel/V
S 0x3db64 r/aa
S 0x3dc68 r2/r2@
S 0x3dd2c r2/r2a
S 0x3ddf0 r2/r2e
S 0x3def4 r2/r2i
S 0x3dfb8 r2/r2o
S 0x3e07c r2/r2u
S 0x3e140 vowel/@_6
S 0x3e244 vwl_en/@L
S 0x3e308 vowel/ee_5
S 0x3e40c vowel/ii#_3
S 0x3e510 vowel/ii_4
S 0x3e614 vowel/ii_7
S 0x3e718 vowel/0
S 0x3e81c vowel/V_2
S 0x3e920 vowel/8_2
S 0x3ea24 vowel/uu
S 0x3eb28 vowel/3_en
S 0x3ec6c w/wi2
S 0x3ed70 vowel/i_en
S 0x3eeb4 vowel/oo_en
S 0x3eff8 vwl_en/u_L
S 0x3f13c vdiph2/uw_2
S 0x3f280 vdiph/au
S 0x3f404 vdiph/@u_en
S 0x3f588 vdiph2/ii@
S 0x3f70c vdiph2/8@
S 0x3f850 vdiph2/uu@
S 0x3f9d4 vwl_en/aI@
S 0x3fb98 vwl_en/aU@
S 0x3fd1c vowelr/V_r
S 0x3fe60 vnasal/aa_n2
S 0x3ffa4 vowel/oo_1
S 0x400e8 vdiph/eei_2
S 0x4022c vdiph/ooi_2
S 0x403f0 vowel/aa_9
S 0x404f4 vowel/aa
S 0x405f8 vowel/e#
S 0x406fc vowel/e_7
S 0x40800 vowel/ee#_2
S 0x40904 vowel/i_8
S 0x40a08 vowel/i_7
S 0x40b0c vowel/u_bck2
S 0x40c10 vowel/u_bck3
S 0x40d14 vowel/u_5
S 0x40e18 vowel/8_7
S 0x40f1c vowel/8_4
S 0x41020 vdiph/&i
S 0x41164 vdiph/@i
W 0x412a8 ufric/s_pal
S 0x41b5c d/xd_pzd
W 0x41c20 x/d_pzd
S 0x42034 vdiph/ou_2
S 0x42178 vowel/aa#
S 0x4227c vowel/uu_4
S 0x42380 vdiph/aai_3
S 0x42504 vdiph/y#i
S 0x42648 vdiph/ui_4
S 0x4278c vdiph/aau
S 0x42910 vdiph/ou
S 0x42a54 vdiph/eu_2
S 0x42b98 vdiph2/iu_2
S 0x42d1c vdiph/&y
S 0x42e60 vdiph/eey
S 0x42fa4 vdiph/y#y
S 0x430e8 vdiph2/iy
S 0x4322c vdiph2/uo
S 0x43370 vdiph2/ie
S 0x434b4 vdiph2/y-y#
S 0x435f8 r3/r_trill_short
W 0x436fc h/hu_fi
S 0x43fec vowel/@_4
S 0x440b0 vowel/ee_4
S 0x441b4 vowel/u#_2
S 0x442b8 vowel/oe_2
S 0x443bc vwl_fr/y2r
S 0x44440 vwl_fr/e_2r
S 0x444c4 vwl_fr/aa2r
S 0x44548 vwl_fr/ee2r
S 0x4460c vwl_fr/oo2r
S 0x446d0 vwl_fr/@2r
S 0x44754 vwl_fr/a2r
S 0x447d8 vwl_fr/e2r
S 0x4485c vwl_fr/i2r
S 0x448e0 vwl_fr/o2r
S 0x44964 vwl_fr/u2r
S 0x449e8 vwl_fr/re2
S 0x44a6c vwl_fr/r@2
S 0x44af0 vwl_fr/raa
S 0x44b74 vwl_fr/ree
S 0x44bf8 vwl_fr/ry
S 0x44c7c vwl_fr/rw
S 0x44d00 vwl_fr/roo
S 0x44d84 vwl_fr/rj
S 0x44e08 vwl_fr/r@
S 0x44e8c vwl_fr/ra
S 0x44f10 vwl_fr/re
S 0x44f94 vwl_fr/ri
S 0x45018 vwl_fr/ro
S 0x4509c vwl_fr/ru
S 0x45120 vwl_fr/r
S 0x451a4 vwl_fr/trr
S 0x45268 vwl_fr/rr
S 0x452ec vwl_fr/r_@
S 0x45370 vwl_fr/r_a
S 0x453f4 vwl_fr/r_e
S 0x45478 vwl_fr/r_i
S 0x454fc vwl_fr/r_o
S 0x45580 vwl_fr/r_u
S 0x45604 vwl_fr/r_y
S 0x45688 vwl_fr/r_n
S 0x4574c vwl_fr/r_
S 0x457d0 vwl_fr/tr
S 0x458d4 vwl_fr/br
S 0x459d8 vwl_fr/lo
S 0x45a5c l/l_y
S 0x45ae0 vowel/@_hgh
S 0x45ba4 vowel/a_7
S 0x45ca8 vowel/e_8
S 0x45dac vowel/e_mid
S 0x45eb0 vwl_fr/j
S 0x45fb4 vowel/o_8
S 0x460f8 vowel/o_mid2
S 0x461fc vwl_fr/wa
S 0x462c0 vnasal/aa_n4
S 0x46404 vnasal/W_n
S 0x46548 vnasal/o_n5
S 0x4668c b/xbr
S 0x46750 b/br
S 0x467d4 d/xdr
S 0x46898 g/xgr
S 0x4695c g/gr
W 0x46a20 x/g
W 0x46ce0 ustop/t_short_
S 0x46f6c vwl_af/r@
S 0x47030 vwl_af/@
S 0x470f4 vowel/a_4
S 0x471f8 vdiph/@u_3
S 0x4737c vdiph2/i@
S 0x47540 vdiph2/u@
S 0x476c4 vnasal/a#_n2
S 0x477c8 vnasal/a_n
S 0x4790c vnasal/e_n
S 0x47a10 vnasal/i_n
S 0x47b14 vnasal/o_n
S 0x47c58 vowel/yy_4
S 0x47d5c vowel/o-
S 0x47e60 vwl_lv/a
S 0x47f64 vwl_lv/aa
S 0x48028 vwl_lv/e
S 0x480ec vwl_lv/ee
S 0x481b0 vwl_lv/i
S 0x48274 vwl_lv/ii
S 0x48338 vwl_lv/o
S 0x483fc vwl_lv/oo
S 0x484c0 vwl_lv/u
S 0x48584 vwl_lv/uu
S 0x48648 vdiph/aai
S 0x487cc vdiph2/ie_2
S 0x48910 vdiph2/ua
S 0x48a14 vowel/@_low
S 0x48ad8 vowel/V_3
S 0x48bdc vowel/i_fnt
S 0x48ce0 vowel/ii_6
S 0x48da4 vowel/e_2
S 0x48ea8 vdiph/ee-e
S 0x48fec vowel/a_5
S 0x490f0 vowel/uu_bck
S 0x491f4 vnasal/i_n2
S 0x492f8 vnasal/ii_n
S 0x493fc vnasal/ee_n2
S 0x49540 vnasal/V_n
S 0x49644 vdiph/aau_3
S 0x497c8 d/xd3
W 0x4988c ustop/th_rfx2
S 0x49e90 g2/xg
W 0x49f54 ustop/percus02
W 0x4a284 ustop/ts2
S 0x4a754 vowel/y#_2
S 0x4a858 vowel/e_3
S 0x4a95c vowel/e_e
S 0x4aa60 vowel/a#_2
S 0x4ab64 vowel/oo_5
S 0x4ac68 vowel/y##
S 0x4ad6c vowel/y#_3
S 0x4ae70 vdiph/ai_7
S 0x4aff4 vdiph/ou_3
S 0x4b0f8 vdiph/y#i_2
S 0x4b23c m/m#_
S 0x4b340 n/n#_
S 0x4b444 n^/n^#_
S 0x4b548 nn/nn#_
W 0x4b64c ufric/tl#
S 0x4bfb4 r3/r#_
S 0x4c038 vowel/oo_3
W 0x4c0fc ustop/k_asp_u
W 0x4c92c ufric/x2
S 0x4d284 vowel/aa_6
S 0x4d3c8 vowel/u#_7
S 0x4d4cc vowel/V_6
W 0x4d5d0 ustop/t_unasp
W 0x4d708 ustop/ts_pzd3
S 0x4dd88 vowel/i_2
S 0x4de8c vdiph/aau_2
S 0x4dfd0 vdiph/ae
S 0x4e114 vdiph/eeu_2
S 0x4e258 vdiph/ae_2
S 0x4e3dc vdiph/eei_5
S 0x4e520 vwl_ru/ee
S 0x4e664 vdiph2/ea
S 0x4e7a8 vowel/i_3
S 0x4e8ac vowel/i_6
S 0x4e9b0 vdiph2/uaa
S 0x4eb34 vdiph/eei_3
S 0x4ec78 vwl_lv/e2
S 0x4ed3c vwl_lv/ee2
S 0x4ee00 vwl_lv/y
S 0x4ef04 vwl_lv/yy
S 0x4f008 vwl_lv/ai
S 0x4f18c vwl_lv/au
S 0x4f310 vwl_lv/ei
S 0x4f454 vwl_lv/ie
S 0x4f598 vwl_lv/iu
S 0x4f71c vwl_lv/ui
S 0x4f860 vwl_lv/ua
S 0x4f964 vwl_lv/oi
W 0x4fb28 h/h-lv
S 0x504a8 l^/l^_
W 0x505ac myanmar/k
W 0x5149c myanmar/kh
W 0x520b4 myanmar/g.wav
S 0x52ef8 myanmar/ny
W 0x530bc myanmar/s
W 0x54258 myanmar/hs
W 0x553f4 myanmar/z
W 0x564dc myanmar/t_short
W 0x5662c myanmar/ht
W 0x571b4 myanmar/d
W 0x57d28 myanmar/p
W 0x58c54 myanmar/t_hi
W 0x58f20 myanmar/h
S 0x5a228 myanmar/yy
S 0x5a42c myanmar/a
S 0x5a4b0 myanmar/ky
W 0x5a6f4 myanmar/by.wav
W 0x5ac00 myanmar/ch.wav
W 0x5b454 myanmar/gya.wav
W 0x5c7d8 myanmar/htya.wav
W 0x5db1c myanmar/phya.wav
W 0x5e7d4 myanmar/pya.wav
W 0x5fc58 myanmar/ty.wav
W 0x60f18 myanmar/sh.wav
S 0x61b2c myanmar/a01
S 0x61c30 myanmar/a02
S 0x61db4 myanmar/a03
S 0x62038 myanmar/a04
S 0x620fc myanmar/a05
S 0x62200 myanmar/a06
S 0x62584 myanmar/a07
S 0x626c8 myanmar/a08
S 0x6284c myanmar/a09
S 0x62b50 myanmar/a11
S 0x62cd4 myanmar/a12
S 0x62f98 myanmar/a14
S 0x6315c myanmar/a13
S 0x633e0 myanmar/a17
S 0x636a4 myanmar/a16
S 0x639a8 myanmar/a20
S 0x63b2c myanmar/a19
S 0x63d70 myanmar/a21
S 0x64034 myanmar/a23
S 0x64138 myanmar/a22
S 0x642bc myanmar/a24
S 0x64600 myanmar/a29
S 0x64744 myanmar/a28
S 0x64988 myanmar/a30
S 0x64d0c myanmar/a32
S 0x64f50 myanmar/a31
S 0x65214 myanmar/a33
S 0x65318 myanmar/a35
S 0x655dc myanmar/a34
S 0x658a0 myanmar/a36
S 0x65ba4 myanmar/a43
S 0x65de8 myanmar/a42
S 0x6602c myanmar/a44
S 0x66430 myanmar/a49
S 0x665b4 myanmar/a50
S 0x66838 myanmar/a46
S 0x66a3c myanmar/a45
S 0x66c40 myanmar/a47
S 0x66f44 myanmar/a25
S 0x67088 myanmar/a26
S 0x672cc myanmar/a27
S 0x67490 myanmar/a37
S 0x67654 myanmar/a38
S 0x67798 myanmar/a39
S 0x679dc myanmar/a40
S 0x67b60 myanmar/a41
S 0x67ce4 vowel/y_4
S 0x67de8 vwl_no/y#
S 0x67eec vwl_no/&
S 0x67ff0 vwl_no/u#
S 0x680f4 vwl_no/u#2
S 0x68238 vdiph/0i_2
S 0x683bc vdiph/ai_3
S 0x68500 vwl_no/y#y
S 0x68644 vwl_no/au-
S 0x68808 vowel/ee#
S 0x6890c vnasal/ee_u_n
S 0x68a90 vnasal/oo_n3
S 0x68c14 vowel/aa_3
W 0x68d18 vocw/Q2
W 0x695e4 ustop/tsh_asp
W 0x6a24c x/g3
S 0x6a434 vwl_ro/mi
S 0x6a578 vwl_ru/ii-
S 0x6a63c vwl_ru/ii
S 0x6a740 vwl_ru/ii#
S 0x6a804 vwl_ru/i#
S 0x6a908 vwl_ru/e
S 0x6aa0c vwl_ru/E#
S 0x6ab10 vwl_ru/E@
S 0x6ac14 vwl_ru/o
S 0x6ad18 vwl_ru/oo
S 0x6addc vwl_ru/u
S 0x6aee0 vwl_ru/u#
S 0x6b024 vwl_ru/u#u
S 0x6b168 vwl_ru/8
S 0x6b22c vwl_ru/ju
S 0x6b330 vwl_ru/ja
S 0x6b4b4 vwl_ru/a
S 0x6b5b8 vwl_ru/aa
S 0x6b6bc r3/r_ru2
W 0x6b7c0 r3/r_ru
S 0x6bac4 vwl_it/o_open
S 0x6bbc8 vdiph/eeu
S 0x6bd0c vdiph/au_2
S 0x6be90 vdiph/ooi_3
S 0x6c014 vdiph/aau_4
S 0x6c198 vowel/8_6
S 0x6c29c vdiph/ooi_4
S 0x6c3e0 vdiph2/ye
S 0x6c524 l/l_front_
S 0x6c668 l/l_front
S 0x6c76c l/l_4
S 0x6c830 vowel/ee_6
S 0x6c8f4 vowel/y_5
S 0x6ca38 vowel/yy_3
S 0x6cb3c vowel/oe_4
S 0x6cc00 vowel/aa_4
W 0x6cd04 ufric/sx_sv
S 0x6d54c vowel/o_4
W 0x6d650 ustop/t_hard
W 0x6d890 ufric/sh3
S 0x6e224 vwl_tn/r@
S 0x6e2e8 vwl_tn/@
S 0x6e3ac vwl_tn/I
S 0x6e470 vdiph/i@_2
S 0x6e5f4 vowel/0_2
W 0x6e6f8 ufric/tlh
E 0x6fc14 envelope/p_fallrise
E 0x6fc94 envelope/vi_5amp
E 0x6fd14 envelope/p_512
E 0x6fd94 envelope/vi_6amp
S 0x6fe14 vietnam/a_2
S 0x6ff58 vietnam/aa
S 0x7005c vietnam/e_e_2
S 0x70160 vietnam/e
S 0x70264 vietnam/e_short_1
S 0x703e8 vietnam/i
S 0x704ec vietnam/i_2
S 0x705f0 vietnam/oo
S 0x70734 vietnam/o_2
S 0x70878 vietnam/u
S 0x7097c vietnam/y_2
S 0x70a80 vietnam/V_2
S 0x70b84 vietnam/@_2
S 0x70c88 vdiph/&i_2
S 0x70dcc vdiph/u-i
S 0x70f10 vdiph/@u
S 0x71054 vdiph2/ii@_3
S 0x711d8 vietnam/y@
S 0x7131c vietnam/u@
S 0x714a0 vietnam/o#
S 0x715e4 vietnam/O_short_2
S 0x71728 vietnam/oe
S 0x7186c vietnam/ie
S 0x719b0 vnasal/oi_n
S 0x71b74 vdiph/@i_3
S 0x71cb8 vowel/u_3
W 0x71dbc vietnam/c_2
W 0x722f8 vietnam/c
S 0x72834 n/nm
S 0x728f8 l/l_vi
W 0x729fc vietnam/th
W 0x72fec vietnam/tr
W 0x732dc vietnam/dda_2
W 0x737a8 vietnam/ch
W 0x73d04 vietnam/w
S 0x73f5c vietnam/_w
S 0x74020 vietnam/w_
S 0x740e4 vietnam/n^_
W 0x74228 vietnam/hi
W 0x74594 vietnam/hu
S 0x74c18 vwl_zh/ang
S 0x74e1c vwl_zh/aang
S 0x75060 vwl_zh/eng
S 0x75264 vwl_zh/ing
S 0x754a8 vwl_zh/ng
S 0x755ec vwl_zh/oeng
S 0x757b0 vwl_zh/ung
S 0x75934 vowel/8_3
S 0x75a38 vdiph/y#y_2
W 0x75bbc ustop/tsh_sr
E 0x764d4 envelope/chr_fall21
E 0x76554 envelope/chr_level2
E 0x765d4 envelope/chr_rise23
E 0x76654 envelope/chr_fall32
E 0x766d4 envelope/chr_level3
E 0x76754 envelope/chr_rise4
E 0x767d4 envelope/chr_fall43
S 0x76854 vnasal/a#_n
W 0x76958 x/dz_pzd_
S 0x77048 vwl_es/oo_
S 0x7710c vwl_es/ooi_
S 0x77290 vwl_es/ooi
S 0x77414 voc/v2
W 0x774d8 ufric/z_eu
W 0x77ee0 ufric/ts_eu
W 0x78888 ufric/tz_eu
S 0x792f4 vdiph/0i
S 0x794b8 vdiph/oou
S 0x795fc vwl_it/a
S 0x79700 vwl_it/e_open
S 0x79804 vwl_it/i
S 0x79908 vwl_it/o
S 0x79a4c vwl_it/u
S 0x79b50 vowel/8_5
S 0x79c54 vowel/o_7
S 0x79d58 vdiph/eeu_3
S 0x79e9c vnasal/a#u_n
S 0x79fe0 vowel/ee_3
S 0x7a0a4 d/x_tap
S 0x7a168 d/tap2
S 0x7a22c vwl_ro/li
S 0x7a330 vwl_ro/ni
S 0x7a434 vwl_ro/ii-
S 0x7a4f8 vowel/i#_5
S 0x7a5fc vdiph/ii
S 0x7a7c0 vdiph/i#i
S 0x7a904 vdiph2/uw_3
S 0x7aa48 vdiph2/eo
S 0x7abcc vdiph2/e_u
S 0x7ad10 d/tap_i
S 0x7add4 d/tap
S 0x7ae98 vowel/u#
S 0x7af9c vowel/@_fr
S 0x7b060 vowel/o-_2
S 0x7b164 vowel/aa_5
S 0x7b2a8 vwl_en_n/O@
S 0x7b3ac vdiph2/uw_4
S 0x7b4f0 vdiph2/ee@
S 0x7b634 vowel/ii_final
S 0x7b738 vowel/o-_3
S 0x7b83c vwl_en_rp/aa
S 0x7b980 vowel/3_3
S 0x7bac4 vowel/uu#_2
S 0x7bbc8 vdiph/au_3
S 0x7bd4c vdiph/@u_2
S 0x7be90 vdiph2/ei_2
S 0x7bfd4 vdiph2/ee@_2
S 0x7c118 vwl_en_rp/i@
S 0x7c29c vwl_en_rp/aU@
S 0x7c420 vowel/e_5
S 0x7c524 vowel/u#_4
S 0x7c628 vowelr/aa_r
S 0x7c7ec vowelr/e_r
S 0x7c970 vowel/i_5
S 0x7ca74 vwl_en_us/or
S 0x7cbb8 vowelr/oo_r
S 0x7ccbc vdiph/au#
S 0x7ce00 vowel/o_3
S 0x7cf44 vwl_en/aI@_2
S 0x7d0c8 vdiph2/e@
S 0x7d20c vowelr/i_r
S 0x7d350 vdiph2/u#@
S 0x7d494 vwl_en/@L_2
S 0x7d598 vwl_en_us/3_us
S 0x7d69c vowel/@_low2
S 0x7d760 vwl_en_us/ar
S 0x7d8a4 vwl_en_us/a
S 0x7d9a8 vwl_en_us/ee
S 0x7daac vwl_en_us/aar
S 0x7dc30 vwl_en_us/3_us2
S 0x7dd74 vwl_en_us/oor
S 0x7def8 vdiph2/uw_6
S 0x7e03c vdiph/aoo
S 0x7e180 vwl_en_us/ai
S 0x7e304 vwl_en_us/er
S 0x7e488 vwl_en_us/ir
S 0x7e60c vwl_en_us/ur
S 0x7e750 vwl_en_us/ai@
S 0x7e8d4 vwl_en_us/ai3
S 0x7ead8 vwl_en_us/aU@
S 0x7ec9c klatt/x_tap
S 0x7ed60 klatt/tap2
S 0x7ee24 vwl_en_us_nyc/a_raised
S 0x7ef28 vwl_en_us_nyc/a
S 0x7f02c vwl_en_us_nyc/0_3
S 0x7f130 vwl_en_us_nyc/aa_8
S 0x7f234 vwl_en_us_nyc/@i
S 0x7f3f8 vowel/@_fnt
S 0x7f4fc vdiph2/ei_3
S 0x7f640 vdiph/Vu_2
S 0x7f7c4 vdiph2/i@_2
S 0x7f948 vwl_en/ooi@
S 0x7fb0c vwl_af/I
S 0x7fbd0 l/L_eL_af
S 0x7fc94 vowel/y_3
S 0x7fd98 vdiph2/iu_3
S 0x7ff5c vdiph/Vu
S 0x800e0 vdiph/ai_4
S 0x80264 vdiph/oi_2
S 0x80428 vdiph/ui_2
S 0x805ac vdiph2/y#@
S 0x806f0 vnasal/aa_n3
S 0x80834 vnasal/o_n2
S 0x80978 vdiph/aau_6
S 0x80afc vwl_de/y#
S 0x80c00 l/l_3
S 0x80c84 j/_j_short
S 0x80d08 vdiph2/i@_3
S 0x80e8c vwl_de/uu_@
S 0x80fd0 vdiph2/ii@_2
S 0x81154 vowel/ii_8
S 0x81258 vowel/y#_4
S 0x8135c vowel/o_6
S 0x81460 vowel/a#_4
S 0x81564 vdiph/y#y_3
S 0x81668 vdiph/ou_4
S 0x817ac voc/Q_less
S 0x81870 vnasal/&_n
W 0x81974 ustop/ki_ejc
S 0x81d80 vdiph/Vi
S 0x81f04 vowel/u_6
S 0x82008 vowel/u#_3
S 0x8210c vdiph/ai_8
S 0x82290 voc/murmur1
S 0x823d4 vdiph/@i_4
S 0x82558 vnasal/ai_n
S 0x8269c vdiph/a#u
S 0x82820 vnasal/au_n
S 0x82964 d/dr2
S 0x82a28 vowel/&_2
W 0x82b2c ustop/tsh_unasp2
W 0x82f74 r3/rz_cs
S 0x83a20 voc/zh_2
W 0x83ae4 ustop/tsh2
S 0x841f0 dzh/dzh2
W 0x842b4 ustop/t_sr
S 0x845ec d/d_dnt
W 0x846b0 ufric/ch_sr
W 0x85290 ufric/x_sr
W 0x85b10 ustop/ts_sr
S 0x862cc vowel/&_3
S 0x863d0 vwl_fr/@R
S 0x864d4 vietnam/a
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/Alex
================================================
language variant
name Alex
voicing 70
pitch 105 115
flutter 0
formant 1 110 115 100
formant 2 100 110 100
formant 3 100 80 75
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/Alicia
================================================
language variant
name Alicia
gender female
pitch 180 275
echo 40 50
formant 0 115 115 110
formant 1 130 160 120
formant 2 150 110 150
formant 3 135 150 100
formant 4 120 120 120
formant 5 120 120 120
formant 6 100 110 105
formant 7 100 110 160
formant 8 200 120 100
intonation 2
voicing 38
consonants 100 20
roughness 1
stressAdd 1 64 64 50 50 100 100 200
stressAmp 12 12 20 20 12 12 20 20
breathw 150 150 200 200 400 400 600 600
breath 0 4 5 2 3 13 3 2
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/Andrea
================================================
language variant
name Andrea
gender female
pitch 200 265
roughness 0
formant 0 100 100 100
formant 1 110 100 80
formant 2 110 80 80
formant 3 115 110 80
formant 4 115 80 100
formant 5 95 50 100
formant 6 0 0 0
formant 7 120 100 100
formant 8 110 100 100
intonation 3
stressLength 0 1 2 3 4 5 6 7
stressAdd 130 140 140 100 0 0 130 160
voicing 150
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/Andy
================================================
language variant
name Andy
gender Male
pitch 85 110
flutter 0
formant 0 80 80 80 80
formant 1 100 100 100 120
formant 2 100 88 100
formant 3 0 0 0
formant 4 80 80 80
formant 5 80 80 80
formant 6 0 0 0
formant 7 0 0 0
formant 8 0 0 0
stressAdd 0 0 0 0 0 0 0 200
stressAmp 35 35 35 35 35 35 35 35 35
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/Annie
================================================
language variant
name Annie
gender female
pitch 120 280
formant 0 105 125 120
formant 1 120 140 120
formant 2 120 150 140
formant 3 130 150 130
formant 4 120 120 110
formant 5 120 120 110
formant 6 120 140 130
formant 7 120 140 130
formant 8 120 140 130
intonation 1
voicing 30
consonants 110 120
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/AnxiousAndy
================================================
language variant
name anxiousAndy
gender Male
pitch 115 110
flutter 0
formant 0 80 80 80 80
formant 1 100 100 100 120
formant 2 100 100 100
formant 3 0 0 0
formant 4 0 0 0
formant 5 100 100 100
formant 6 100 100 100
formant 7 100 100 100
formant 8 100 100 100
stressAdd 100 100 100 100 100 100 100 300
stressAmp 35 35 35 35 35 35 35 35 35
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/Demonic
================================================
##Ten en cuenta que los 2 signos de número en este archivo tienen explicaciones de las comfiguraciones que puede aplicar y cómo comfigurarlas
## Language Establece el idioma de la voz. Esta opción es necesaria para cualquier comfiguración que realices
##La siguiente línea es una configuración que puede cambiar. Sin embargo, si no conoce los códigos de idioma, puede ser mejor dejar la configuración tal y como está.
language variant
## La configuración de nombre es el nombre que aparecerá en la configuración de voz en el cuadro combinado de variante.
##La siguiente línea es una opción que puede cambiar
name Demonic
##La siguiente línea establece el género de la voz. Male or Female (hombre o mujer)
##La siguiente línea es una opción que puede cambiar
gender male
flutter 5
stressAmp 20 18 20 20 20 22 22 22
##Las opciones de formantes
## Formant 0 es usado para dar una baja frecuencia a los sonnidos
## Los tres números son frecuencia, fuerza y ancho, en orden. Ten en cuenta que los números están separados por espacios
##La siguiente línea es una opción que puede cambiar
formant 0 100 100 100
# Formant 1, 2, y 3 son las 3 formantes estándar para definir las vocales.
##Las siguientes 3 líneas son opciones que puedes cambiar
formant 1 70 100 100
formant 2 80 100 90
formant 3 80 160 90
# Formants 4 y 5 afectan a f3. Esto afectará la calidad de la voz.
##Las siguientes 2 líneas son comfiguraciones que puede cambiar.
formant 4 80 85
formant 5 100 100 80
## Formantes 6, 7 y 8 son opciones que te ofrecen un sonido más claro de las vocales
##Las siguientes 3 líneas son opciones que puedes cambiar
formant 6 80 80 100
formant 7 130 130 110
formant 8 120 120 150
##Intonation afecta el ascenso y la caída de la voz
## Las opciones son: 1 predeterminado, 2 entonación media, 3 entonación media y no afecta a las comas, 4 al final de la oración o punto aumenta el tono de la voz.
##La siguiente línea es una opción que puedes cambiar.
intonation 10
# Establecer el rango de tono. El primer número le da un tono base a la voz (valor en hz). El segundo número controla el rango de tonos usado por la voz. Poniéndolo igual
# si los 2 números son iguales, la voz será monótona. Por defecto los ajustes son 82 y 118
pitch 43 120
## La configuración del tono. El primer número en la línea de configuración, 600, es la configuración de frecuencia para la cantidad de graves en la voz.
## El segundo número en la línea de tono es el volumen de la frecuencia de graves. Puede configurarlo de 0 a 255, siendo 0 la menor cantidad, 255 la mayor.
##El tercer número en la línea de tono, 1200, es la frecuencia de rango medio. El cuarto número en la línea es la configuración para cambiar el volumen de la frecuencia de rango medio.
##0 es la menor cantidad y 255 es la mayor.
## El quinto número en la línea de tono, 2000, es la frecuencia de agudos. El sexto número es el volumen de la frecuencia de agudos. 0 es el mínimo y 255 es el máximo.
## Notará que las 3 frecuencias están configuradas en 255.
###La siguiente línea es una opción que puedes cambiar.
tone 100 255 1200 255 1500 255
echo 8 10000
roughness 3
breath 20 5 2 10 5 0 27 100
breathw 255 255 60 180 160 255 255 255
consonants 194 255
voicing 65
stressLength 0 1 2 3 4 5 6 7
stressAdd 250 350 700 500 450 290 100 225
stressAmp 16 16 24 24 16 16 20 24
##Este archivo no incluye todas las configuraciones que se pueden usar para modificar una voz E Speak. Su objetivo es familiarizarlo con lo que hace la configuración.
##Sin envargo puedes visitar la página http://espeak.sourceforge.net/voices.html y consultar más información acerca de cómo agregar o cambiar otras configuraciones.
## Espero que te haya servido esta ayuda, y que te hayas divertido.
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/Denis
================================================
language variant
name Denis
gender male 35
pitch 80 115
flutter 0
roughness 0
formant 0 100 160 160
formant 1 95 95 95
formant 2 100 100 100
formant 3 90 90 90
formant 4 40 40 40
formant 5 80 80 80
formant 6 10 10 10
formant 7 10 10 10
formant 8 10 10 10
voicing 40
consonants 80 80
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/Diogo
================================================
language variant
name Diogo
gender male 25
pitch 82 122
echo 0 0
flutter 0
roughness 0
stressAmp 20 18 20 20 20 22 22 22
formant 0 105 200 140
formant 1 95 150 120
formant 2 100 120 140
formant 3 95 95 140
formant 4 30 30 30 -100
formant 5 90 90 90
formant 6 110 60 65
formant 7 100 0 100
formant 8 100 0 100
voicing 35
consonants 60 40
tone 60 250 140 100 1000 50 3500 35
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/Gene
================================================
language variant
name Gene
pitch 80 110
formant 0 120 120 120
formant 1 90 100 110
formant 2 100 100 95
formant 3 90 100 100
formant 4 90 100 110
formant 5 90 110 110
formant 6 100 70 100
formant 7 100 70 100
formant 8 100 80 100
voicing 120
consonants 50 110
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/Gene2
================================================
language variant
name Gene2
pitch 100 130
formant 0 120 120 120
formant 1 90 100 110
formant 2 100 100 95
formant 3 90 100 100
formant 4 90 100 110
formant 5 90 110 110
formant 6 100 70 100
formant 7 100 70 100
formant 8 100 80 100
voicing 120
consonants 50 110
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/Henrique
================================================
language variant
name Henrique
gender male 25
pitch 70 130
echo 0 0
flutter 0
roughness 0
stressAmp 20 18 20 20 20 22 22 22
formant 0 105 200 140
formant 1 95 150 120
formant 2 100 120 140
formant 3 95 95 140
formant 4 30 30 30 -100
formant 5 90 90 90
formant 6 110 60 65
formant 7 100 0 100
formant 8 100 0 100
voicing 35
consonants 60 40
tone 70 250 230 80 1100 30 3500 40
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/Hugo
================================================
language variant
name Hugo
gender male 25
pitch 70 130
echo 0 0
flutter 0
roughness 0
stressAmp 20 18 20 20 20 22 22 22
formant 0 105 200 140
formant 1 95 150 120
formant 2 100 120 140
formant 3 95 95 140
formant 4 30 30 30 -100
formant 5 90 90 90
formant 6 110 60 65
formant 7 100 0 100
formant 8 100 0 100
voicing 35
consonants 60 40
tone 400 160 1100 90 3500 90 150 35
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/Jacky
================================================
language variant
name Jacky
pitch 85 130
formant 0 150 155 100
formant 1 90 155 70
formant 2 95 70 64
formant 3 15 20 30
formant 4 20 30 40
formant 5 65 20 65
formant 6 70 80 100
formant 7 20 80 100
formant 8 100 95 80
voicing 135
consonants 110
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/Lee
================================================
language variant
name Lee
gender Male
#echo 230 30
pitch 85 110
flutter 0
formant 0 80 80 80 80
formant 1 80 80 100 100
formant 2 80 80 80
formant 3 9 9 9
formant 4 290 290
formant 5 130 0 0
formant 6 90 90 90
formant 7 90 90 90
formant 8 90 90 90
stressAdd 0 0 0 200 0 0 0 100
stressAmp 30 30 30 30 30 30 30 30 30
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/Marco
================================================
language variant
name Marco
gender male 30
intonation 1
pitch 100 152
echo 50 80
flutter 2
roughness 0
stressAmp 25 25 24 20 38 31 39 27
stressAdd 250 125 250 250 225 145 50 256
formant 0 100 120 130
formant 1 75 180 170
formant 2 92 120 110
formant 3 140 120 110
formant 4 10 20 20 -50
formant 5 110 70 20
formant 6 140 100 98
formant 7 130 120 115
formant 8 105 120 108
voicing 38
consonants 90 140
tone 420 150 1200 135 3000 70 4700 40
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/Mario
================================================
language variant
name Mario
pitch 75 125
formant 0 100 111 95
formant 1 100 111 60
formant 2 95 90 55
formant 3 100 50 65
formant 4 69 65 65
formant 5 79 60 75
formant 6 89 60 75
formant 7 99 0 100
formant 8 109 0 100
voicing 135
consonants 115 120
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/Michael
================================================
language variant
name Michael
pitch 75 125
formant 0 105 111 95
formant 1 85 111 60
formant 2 95 90 55
formant 3 59 50 65
formant 4 69 65 65
formant 5 79 60 75
formant 6 89 60 75
formant 7 99 0 100
formant 8 109 0 100
voicing 135
consonants 115 120
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/Mike
================================================
language variant
name Mike
voicing 70
formant 1 96 97 100
formant 2 96 97 100
formant 5 95 103 100
pitch 67 107
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/Mr serious
================================================
##Please note the 2 number signs, or pound signs in this file are for comments to help you to understand what the settings are and how to set them.
## Language sets the language of your voice. This setting is required for every voice that you make.
##The next line is a setting you can change. However if you don't know the language codes it may be best to leave the setting as it is.
language variant
## The name setting is the name that will show up in the voice settings in the variant combo box.
##The next line is a setting you can change
name Mr_Serious
##The formant settings
## Formant 0 is used to give a low frequency component to the sounds.
## The three numbers are frequency, strength, and Width, in that order. Please note, the numbers are seperated by a space.
##The next line is a setting you can change
formant 0 100 100 100
# Formants 1,2, and 3 are the standard three formants which define vowels.
##The next 3 lines are settings you can change
formant 1 100 100 100
formant 2 100 100 100
formant 3 87 100 100
# Formants 4,5 are higher than F3. They affect the quality of the voice.
##The next 2 lines are settings that you can change.
formant 4 100 100 100
formant 5 100 100 100
## Formants 6, 7, and 8 are weak, high frequency, additions to vowels to give a clearer sound.
##The next 3 lines are settings that you can change.
formant 6 100 100 100
formant 7 100 100 100
formant 8 100 100 100
##Intonation affects the rise and fall of the voice
## The settings are 1 default, 2 less intonation, 3 less intonation and commas do not raise the pitch, 4 the pitch rises at the end of a sentence rather than falling.
##The next line is a setting you can change.
intonation 1
# Setting the pitch range. The first number gives a base pitch to the voice (value in Hertz). The second number controls the range of pitches used by the voice. Setting it equal
# to the first number will give a monotone sounding voice. The default values are 82 and 118.
pitch 82 118
## The tone setting. The first number on the setting line, 600, is the frequency setting for the amount of bass in the voice.
## The second number on the tone line is the volume of the bass frequency. You can set it from 0 to 255, 0 being the least amount, 255 being the most.
##The third number on the tone line, 1200, is the mid range frequency. The fourth number on the line is the setting to change the volume of the mid range frequency.
##0 being the least amount and 255 being the maximum.
## The fifth number on the tone line, 2000, is the treble frequency. The sixth number is the volume of the treble frequency. 0 is the minimum and 255 is the maximum.
## You will notice that all 3 frequencies are set to 255.
##The next line is a setting that you can change.
tone 600 255 1200 255 2000 255
##This file does not include all of the settings that can be used to modify an E Speak voice. It is intended to get you familiar with what the settings do.
##However, you can go to http://espeak.sourceforge.net/voices.html and read further information about other settings that can be added and changed. I hope this helps, and Have fun.
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/Nguyen
================================================
language variant
name Nguyen
pitch 95 175
formant 0 100 125 100
formant 1 96 90 80
formant 2 97 70 90
formant 3 97 60 90
formant 4 97 60 90
formant 5 75 50 90
formant 6 90 50 100
formant 7 100 50 100
formant 8 100 50 100
tone 100 200 600 150 800 100 2400 80 3600 95 5400 100
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/Reed
================================================
language variant
name Reed
klatt 6
consonants 85 85
voicing 130
breath 45
pitch 85 135
formant 1 72 100 90 90
formant 2 83 100 75 180
formant 3 98 100 100 90
formant 4 98 100 90
formant 5 100 100 90
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/RicishayMax
================================================
language variant
name RicishayMax
echo 100 10000
formant 0 90 120 100
formant 1 100 100 75
formant 2 100 100 75
formant 3 100 80 75
formant 4 100 80 75
formant 5 100 80 75
formant 6 100 0 75
formant 7 100 0 75
formant 8 100 0 75
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/RicishayMax2
================================================
language variant
name RicishayMax2
echo 150 500
formant 0 90 120 100
formant 1 100 100 75
formant 2 100 100 75
formant 3 100 80 75
formant 4 100 80 75
formant 5 100 80 75
formant 6 100 0 75
formant 7 100 0 75
formant 8 100 0 75
roughness 5
intonation 10
voicing 150
consonants 110 120
stressLength 0 1 2 3 4 5 6 7
stressAdd 130 140 140 100 0 0 130 160
stressAmp 16 16 24 24 16 16 20 24
tone 100 255 600 70 1200 22 2000 66 3000 12
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/RicishayMax3
================================================
language variant
name RicishayMax3
echo 200 500
formant 0 90 120 100
formant 1 100 100 75
formant 2 100 100 75
formant 3 100 80 75
formant 4 100 80 75
formant 5 100 80 75
formant 6 100 0 75
formant 7 100 0 75
formant 8 100 0 75
roughness 5
intonation 10
voicing 150
consonants 110 120
stressLength 0 1 2 3 4 5 6 7
stressAdd 130 140 140 100 0 0 130 160
stressAmp 16 16 24 24 16 16 20 24
tone 100 255 600 70 1200 22 2000 66 3000 12
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/Storm
================================================
language variant
language en-us
name Storm
gender male
formant 0 100 100 100
formant 1 95 95 95
formant 2 95 95 95
formant 3 95 95 95
formant 4 70 70 70
formant 5 70 70 70
formant 6 25 25 25
formant 7 25 25 25
formant 8 25 25 25
breath 0 0 0 0 0 0 0 0
consonants 100
echo 0 0
flutter 0
intonation 3
pitch 60 100
roughness 0
stressAdd 5 5 3 3 0 0 -15 -15
tone 500 255 1500 255 2500 255
voicing 100
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/Tweaky
================================================
##Please note the 2 number signs, or pound signs in this file are for comments to help you to understand what the settings are and how to set them.
## Language sets the language of your voice. This setting is required for every voice that you make.
##The next line is a setting you can change. However if you don't know the language codes it may be best to leave the setting as it is.
language variant
## The name setting is the name that will show up in the voice settings in the variant combo box.
##The next line is a setting you can change
name Tweaky
##The formant settings
## Formant 0 is used to give a low frequency component to the sounds.
## The three numbers are frequency, strength, and Width, in that order. Please note, the numbers are seperated by a space.
##The next line is a setting you can change
formant 0 100 100 100
# Formants 1,2, and 3 are the standard three formants which define vowels.
##The next 3 lines are settings you can change
formant 1 100 100 100
formant 2 100 100 100
formant 3 200 100 100
# Formants 4,5 are higher than F3. They affect the quality of the voice.
##The next 2 lines are settings that you can change.
formant 4 100 100 100
formant 5 100 100 100
## Formants 6, 7, and 8 are weak, high frequency, additions to vowels to give a clearer sound.
##The next 3 lines are settings that you can change.
formant 6 100 100 100
formant 7 100 100 100
formant 8 100 100 100
##Intonation affects the rise and fall of the voice
## The settings are 1 default, 2 less intonation, 3 less intonation and commas do not raise the pitch, 4 the pitch rises at the end of a sentence rather than falling.
##The next line is a setting you can change.
intonation 1
# Setting the pitch range. The first number gives a base pitch to the voice (value in Hertz). The second number controls the range of pitches used by the voice. Setting it equal
# to the first number will give a monotone sounding voice. The default values are 82 and 118.
pitch 82 118
## The tone setting. The first number on the setting line, 600, is the frequency setting for the amount of bass in the voice.
## The second number on the tone line is the volume of the bass frequency. You can set it from 0 to 255, 0 being the least amount, 255 being the most.
##The third number on the tone line, 1200, is the mid range frequency. The fourth number on the line is the setting to change the volume of the mid range frequency.
##0 being the least amount and 255 being the maximum.
## The fifth number on the tone line, 2000, is the treble frequency. The sixth number is the volume of the treble frequency. 0 is the minimum and 255 is the maximum.
## You will notice that all 3 frequencies are set to 255.
##The next line is a setting that you can change.
tone 600 255 1200 255 2000 255
##This file does not include all of the settings that can be used to modify an E Speak voice. It is intended to get you familiar with what the settings do.
##However, you can go to http://espeak.sourceforge.net/voices.html and read further information about other settings that can be added and changed. I hope this helps, and Have fun.
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/UniRobot
================================================
language variant
name UniversalRobot
gender male
klatt 4
pitch 100 160
echo 10 10000
formant 1 75 120 135
formant 2 90 50 140
formant 3 70 85 95
formant 4 150 60 80
formant 5 100 85 80
formant 6 112 100 80
formant 7 110 95 100
formant 8 105 110 100
consonants 125 100
tone 530 250 770 100 215 225
stressLength 0 1 2 3 4 5 6 7
stressAdd 120 130 130 90 0 0 120 120
stressAmp 16 16 24 24 16 16 20 24
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/adam
================================================
language variant
name Adam
klatt 6
consonants 85 85
formant 1 100 100 130
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/anika
================================================
language variant
name anika
gender female
pitch 200 300
flutter 6
stressAmp 20 18 20 20 20 22 22 22
roughness 0
formant 0 105 200 140
formant 1 95 150 120
formant 2 100 120 140
formant 3 95 95 140
formant 4 120 120 110
formant 5 120 120 110
formant 6 110 60 65
formant 7 100 0 100
formant 8 100 0 100
intonation 10
voicing 30
consonants 60 40
stressLength 0 1 2 3 4 5 6 7
stressAdd 130 140 140 100 0 0 130 160
stressAmp 16 16 24 24 16 16 20 24
tone 100 255 600 70 1200 22 2000 66 3000 12
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/anikaRobot
================================================
language variant
name anikaRobot
gender female
pitch 200 300
flutter 1
stressAmp 20 18 20 20 20 22 22 22
echo 10 10000
roughness 0
formant 0 105 200 140
formant 1 95 150 120
formant 2 100 120 140
formant 3 95 95 140
formant 4 120 120 110
formant 5 120 120 110
formant 6 110 60 65
formant 7 100 0 100
formant 8 100 0 100
intonation 10
voicing 30
consonants 60 40
stressLength 0 1 2 3 4 5 6 7
stressAdd 130 140 140 100 0 0 130 160
stressAmp 16 16 24 24 16 16 20 24
tone 100 255 600 70 1200 22 2000 66 3000 12
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/announcer
================================================
name Half-LifeAnnouncementSystem
language variant
pitch 37 83
klatt 4
formant 1 88 100 100 0
formant 2 96 100 100 0
formant 3 98 100 100 0
formant 4 96 100 100 0
formant 5 100 100 100 0
formant 6 100 100 100 0
formant 7 100 100 100 0
formant 8 100 100 100 0
voicing 70
consonants 70 70
echo 154 26
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/antonio
================================================
language variant
name Antonio
gender male
pitch 82 128
roughness 0
formant 0 100 150 90
formant 1 90 130 90
formant 2 95 120 80
formant 3 100 50 80
formant 4 100 40 80
formant 5 90 70 80
formant 6 0 0 0
formant 7 100 100 100
formant 8 100 100 100
voicing 150
tone 600 255 1200 255 2000 80
intonation 3
stressLength 0 1 2 3 4 5 6 7
stressAdd 130 140 140 100 0 0 130 160
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/aunty
================================================
language variant
name Auntie
gender female
pitch 204 176
flutter 12
formant 0 88 85 154
formant 1 115 80 160 -20
formant 2 130 75 150 -200
formant 3 123 75 150
formant 4 125 80 150
formant 5 125 80 150
formant 6 110 80 150
formant 7 110 75 150
formant 8 110 75 150
stressAdd -20 -20 -20 -20 0 0 20 120
stressAmp 18 16 20 20 20 20 20 20
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/belinda
================================================
language variant
name Belinda
gender female
pitch 200 247
flutter 3
formant 0 88 85 154
formant 1 135 58 169 -30
formant 2 120 70 150 -260
formant 3 120 39 150
formant 4 125 57 80
formant 5 125 80 150
formant 6 110 80 150
formant 7 110 75 150
formant 8 110 75 150
stressAdd -20 -20 -20 -20 0 3 20 12
stressAmp 18 16 20 20 10 20 27 20
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/benjamin
================================================
language variant
name Benjamin
klatt 6
consonants 70 70
formant 1 101 100 130
formant 2 102 100 100
formant 3 100 100 100
formant 4 100 100 100 470
formant 5 100 100 100 350
formant 6 100 100 100 100
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/boris
================================================
language variant
name Boris
formant 0 47 120 100
formant 1 100 90 75
formant 2 104 100 75
formant 3 57 80 75
formant 4 104 80 75
formant 5 107 80 75
formant 6 68 0 75
formant 7 105 0 75
formant 8 105 0 75
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/caleb
================================================
language variant
name Caleb
klatt 6
breath 100
voicing 0
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/croak
================================================
language variant
name croak
gender male 70
pitch 85 117
flutter 20
formant 0 100 80 110
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/david
================================================
language variant
name David
klatt 6
pitch 62 89
formant 1 75 100 100
formant 2 85 100 100
formant 3 85 100 100
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/ed
================================================
language variant
name Ed
pitch 90 145
formant 0 110 120 200 5
formant 1 102 100 80
formant 2 101 120 100
formant 3 100 80 75
formant 4 150 30 80
formant 5 95 95 155
formant 6 167 100 75
formant 7 100 200 75
formant 8 60 200 95
consonants 55 80
voicing 100
tone 650 250 1000 130 240 255
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/edward
================================================
language variant
name Edward
klatt 5
voicing 100
consonants 70 80
formant 1 92 100 130
formant 2 103 100 80
formant 3 103 100 70
formant 4 114 100 60
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/edward2
================================================
language variant
name Edward2
klatt 6
voicing 100
consonants 70 80
formant 1 92 100 130
formant 2 103 100 80
formant 3 103 100 70
formant 4 114 100 60
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/f1
================================================
language variant
name female1
gender female 70
pitch 140 200
flutter 8
roughness 4
formant 0 115 80 150
formant 1 120 80 180
formant 2 100 70 150 150
formant 3 115 70 150
formant 4 110 80 150
formant 5 110 90 150
formant 6 105 80 150
formant 7 110 70 150
formant 8 110 70 150
stressAdd -10 -10 -20 -20 0 0 40 60
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/f2
================================================
language variant
name female2
gender female
pitch 142 220
roughness 3
formant 0 105 80 150
formant 1 110 80 160
formant 2 110 70 150
formant 3 110 70 150
formant 4 115 80 150
formant 5 115 80 150
formant 6 110 70 150
formant 7 110 70 150
formant 8 110 70 150
stressAdd 0 0 -10 -10 0 0 10 40
breath 0 2 3 3 3 3 3 2
echo 140 10
consonants 125 125
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/f3
================================================
language variant
name female3
gender female
pitch 140 240
formant 0 105 80 150
formant 1 120 75 150 -50
formant 2 135 70 150 -250
formant 3 125 80 150
formant 4 125 80 150
formant 5 125 80 150
formant 6 120 70 150
formant 7 110 70 150
formant 8 110 70 150
stressAmp 18 18 20 20 20 20 20 20
//breath 0 2 4 4 4 4 4 4
breath 0 2 3 3 3 3 3 2
echo 120 10
roughness 4
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/f4
================================================
language variant
name female4
gender female
echo 130 15
pitch 142 200
formant 0 120 80 150
formant 1 115 80 160 -20
formant 2 130 75 150 -200
formant 3 123 75 150
formant 4 125 80 150
formant 5 125 80 150
formant 6 110 80 150
formant 7 110 75 150
formant 8 110 75 150
stressAdd -20 -20 -20 -20 0 0 20 120
stressAmp 18 16 20 20 20 20 20 20
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/f5
================================================
language variant
name female5
gender female
pitch 160 228
roughness 0
formant 0 105 80 150
formant 1 110 80 160
formant 2 110 70 150
formant 3 110 70 150
formant 4 115 80 200
formant 5 115 80 100
formant 6 110 70 150
formant 7 110 70 100
formant 8 110 70 150
stressAdd 0 0 -10 -10 0 0 10 40
breath 0 4 6 6 6 6 0 10
echo 140 10
voicing 75
consonants 150 150
breathw 150 150 200 200 400 400 600 600
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/fast
================================================
language variant
name fast_test
// Try decreasing these values to make eSpeak's fastest speed faster.
// This is currently unstable.
fast_test2 15
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/grandma
================================================
language variant
name grandma
gender female 90
pitch 120 230
flutter 20
formant 0 105 150 150
formant 1 100 80 100
formant 2 105 105 105
formant 3 80 80 80
formant 4 60 60 60
formant 5 90 90 90
formant 6 10 10 10
formant 7 10 10 10
formant 8 20 20 20
voicing 50
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/grandpa
================================================
language variant
name grandpa
pitch 80 120
flutter 20
formant 0 100 100 100
formant 1 100 100 100
formant 2 100 100 100
formant 3 100 100 100
formant 4 100 100 100
formant 5 100 100 100
formant 6 10 10 10
formant 7 10 10 10
formant 8 10 10 10
intonation 1
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/gustave
================================================
language variant
name Gustave
pitch 80 123
formant 0 85 141 135
formant 1 77 131 45
formant 2 92 70 55
formant 3 59 50 65
formant 4 69 65 65
formant 5 79 60 75
formant 6 89 60 75
formant 7 99 0 100
formant 8 109 0 100
voicing 135
consonants 115 120
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/ian
================================================
##Please note the 2 number signs, or pound signs in this file are for comments to help you to understand what the settings are and how to set them.
## Language sets the language of your voice. This setting is required for every voice that you make.
##The next line is a setting you can change. However if you don't know the language codes it may be best to leave the setting as it is.
language variant
## The name setting is the name that will show up in the voice settings in the variant combo box.
##The next line is a setting you can change
name Ian
##The formant settings
## Formant 0 is used to give a low frequency component to the sounds.
## The three numbers are frequency, strength, and Width, in that order. Please note, the numbers are seperated by a space.
##The next line is a setting you can change
formant 0 20 120 50
# Formants 1,2, and 3 are the standard three formants which define vowels.
##The next 3 lines are settings you can change
formant 1 80 80 80
formant 2 80 80 80
formant 3 80 80 80
# Formants 4,5 are higher than F3. They affect the quality of the voice.
##The next 2 lines are settings that you can change.
formant 4 50 50 50
formant 5 50 50 50
## Formants 6, 7, and 8 are weak, high frequency, additions to vowels to give a clearer sound.
##The next 3 lines are settings that you can change.
formant 6 100 100 100
formant 7 200 50 200
formant 8 200 50 200
##Intonation affects the rise and fall of the voice
## The settings are 1 default, 2 less intonation, 3 less intonation and commas do not raise the pitch, 4 the pitch rises at the end of a sentence rather than falling.
##The next line is a setting you can change.
intonation 2
# Setting the pitch range. The first number gives a base pitch to the voice (value in Hertz). The second number controls the range of pitches used by the voice.
# Setting it equal to the first number will give a monotone sounding voice. The default values are 82 and 118.
pitch 69 96
## The tone setting. The first number on the setting line, 600, is the frequency setting for the amount of bass in the voice.
##The second number on the tone line is the volume of the bass frequency. You can set it from 0 to 255, 0 being the least amount, 255 being the most.
##The third number on the tone line, 1200, is the mid range frequency. The fourth number on the line is the setting to change the volume of the mid range frequency.
##0 being the least amount and 255 being the maximum.
## The fifth number on the tone line, 2000, is the treble frequency. The sixth number is the volume of the treble frequency. 0 is the minimum and 255 is the maximum.
## You will notice that all 3 frequencies are set to 255.
##The next line is a setting that you can change.
tone 1000 127 1200 127 2000 127
##This file does not include all of the settings that can be used to modify an E Speak voice. It is intended to get you familiar with what the settings do.
##However, you can go to http://espeak.sourceforge.net/voices.html and read further information about other settings that can be added and changed. I hope this helps, and Have fun.
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/iven
================================================
language variant
name Iven
pitch 74 118
formant 0 52 133 88
formant 1 87 82 76
formant 2 94 56 42
formant 3 93 52 130
formant 4 110 76 65
formant 5 102 45 20
formant 6 40 50 50
formant 7 60 50 60
formant 8 100 50 40
voicing 530
tone 600 255 1200 255 2000 160
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/iven2
================================================
language variant
name Iven2
pitch 74 118
formant 0 52 133 88
formant 1 87 82 76
formant 2 94 56 42
formant 3 93 52 130
formant 4 110 76 65
formant 5 102 45 20
formant 6 40 50 50
formant 7 60 50 60
formant 8 100 50 40
voicing 220
consonants 28 42
tone 600 255 1200 255 2000 150
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/iven3
================================================
language variant
name Iven3
pitch 74 118
formant 0 52 133 88
formant 1 87 82 76
formant 2 94 56 42
formant 3 93 52 130
formant 4 110 76 65
formant 5 102 45 20
formant 6 40 50 50
formant 7 60 50 60
formant 8 100 50 40
voicing 165
tone 600 255 1200 255 2000 160
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/iven4
================================================
language variant
name Iven4
pitch 74 118
formant 0 52 133 88
formant 1 87 82 76
formant 2 94 56 42
formant 3 93 52 130
formant 4 110 76 65
formant 5 102 45 20
formant 6 40 50 50
formant 7 60 50 60
formant 8 100 50 40
voicing 165
tone 600 170 1200 100 2000 40
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/john
================================================
##Please note the 2 number signs, or pound signs in this file are for comments to help you to understand what the settings are and how to set them.
## Language sets the language of your voice. This setting is required for every voice that you make.
##The next line is a setting you can change. However if you don't know the language codes it may be best to leave the setting as it is.
language variant
## The name setting is the name that will show up in the voice settings in the variant combo box.
##The next line is a setting you can change
name John
##The formant settings
## Formant 0 is used to give a low frequency component to the sounds.
## The three numbers are frequency, strength, and Width, in that order. Please note, the numbers are seperated by a space.
##The next line is a setting you can change
formant 0 100 100 100
# Formants 1,2, and 3 are the standard three formants which define vowels.
##The next 3 lines are settings you can change
formant 1 100 100 100
formant 2 100 100 100
formant 3 100 100 100
# Formants 4,5 are higher than F3. They affect the quality of the voice.
##The next 2 lines are settings that you can change.
formant 4 100 100 100
formant 5 100 100 100
## Formants 6, 7, and 8 are weak, high frequency, additions to vowels to give a clearer sound.
##The next 3 lines are settings that you can change.
formant 6 100 100 100
formant 7 100 100 100
formant 8 100 100 100
##Intonation affects the rise and fall of the voice
## The settings are 1 default, 2 less intonation, 3 less intonation and commas do not raise the pitch, 4 the pitch rises at the end of a sentence rather than falling.
##The next line is a setting you can change.
intonation 1
# Setting the pitch range. The first number gives a base pitch to the voice (value in Hertz). The second number controls the range of pitches used by the voice.
# Setting it equal to the first number will give a monotone sounding voice. The default values are 82 and 118.
pitch 82 118
## The tone setting. The first number on the setting line, 600, is the frequency setting for the amount of bass in the voice.
##The second number on the tone line is the volume of the bass frequency. You can set it from 0 to 255, 0 being the least amount, 255 being the most.
##The third number on the tone line, 1200, is the mid range frequency. The fourth number on the line is the setting to change the volume of the mid range frequency.
##0 being the least amount and 255 being the maximum.
## The fifth number on the tone line, 2000, is the treble frequency. The sixth number is the volume of the treble frequency. 0 is the minimum and 255 is the maximum.
## You will notice that all 3 frequencies are set to 255.
##The next line is a setting that you can change.
tone 600 255 1200 255 2000 255
##This file does not include all of the settings that can be used to modify an E Speak voice. It is intended to get you familiar with what the settings do.
##However, you can go to http://espeak.sourceforge.net/voices.html and read further information about other settings that can be added and changed. I hope this helps, and Have fun.
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/kaukovalta
================================================
language variant
name Kaukovalta
formant 0 80 80 100
formant 1 40 80 100
formant 2 70 100 130
formant 3 80 100 60
formant 4 70 90 100
formant 5 70 90 100
formant 6 70 100 90
formant 7 100 90 110
formant 8 100 95 100
pitch 70 120
tone 100 130 800 130 2000 130
consonants 70 70
roughness 4
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/klatt
================================================
language variant
name klatt
klatt 1
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/klatt2
================================================
language variant
name klatt2
klatt 2
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/klatt3
================================================
language variant
name klatt3
klatt 3
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/klatt4
================================================
language variant
name klatt4
klatt 4
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/klatt5
================================================
language variant
name klatt5
klatt 5
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/klatt6
================================================
language variant
name klatt6
klatt 6
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/linda
================================================
language variant
name Linda
gender female
#echo 130 15
pitch 200 247
flutter 3
formant 0 88 85 154
formant 1 135 58 169 -30
formant 2 131 75 152 -260
formant 3 123 75 150
formant 4 125 80 150
formant 5 125 80 150
formant 6 110 80 150
formant 7 110 75 150
formant 8 110 75 150
stressAdd -20 -20 -20 -20 0 3 20 120
stressAmp 18 16 20 20 20 20 27 20
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/m1
================================================
language variant
name male1
gender male 70
pitch 75 109
flutter 5
roughness 4
consonants 80 100
formant 0 98 100 100
formant 1 97 100 100
formant 2 97 95 100
formant 3 97 95 100
formant 4 97 85 100
formant 5 105 80 100
formant 6 95 80 100
formant 7 100 100 100
formant 8 100 100 100
//stressAdd -10 -10 -20 -20 0 0 40 70
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/m2
================================================
language variant
name male2
gender male
pitch 88 115
echo 130 15
formant 0 100 80 120
formant 1 90 85 120
formant 2 110 85 120
formant 3 105 90 120
formant 4 100 90 120
formant 5 100 90 120
formant 6 100 90 120
formant 7 100 90 120
formant 8 100 90 120
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/m3
================================================
language variant
name male3
gender male
pitch 80 122
formant 0 100 100 100
formant 1 96 97 100
formant 2 96 97 100
formant 3 96 103 100
formant 4 95 103 100
formant 5 95 103 100
formant 6 100 100 100
formant 7 100 100 100
formant 8 100 100 100
consonants 100
stressAdd 10 10 0 0 0 0 -30 -30
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/m4
================================================
language variant
name male4
gender male
pitch 70 110
formant 0 103 100 100
formant 1 103 100 100
formant 2 103 100 100
formant 3 103 100 100
formant 4 106 100 100
formant 5 106 100 100
formant 6 106 100 100
formant 7 103 100 100
formant 8 103 100 100
stressAdd -10 -10 -30 -30 0 0 60 90
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/m5
================================================
language variant
name male5
gender male
formant 0 100 85 130
formant 1 90 85 130 40
formant 2 80 85 130 310
formant 3 105 85 130
formant 4 105 85 130
formant 5 105 85 130
formant 6 105 85 150
formant 7 105 85 150
formant 8 105 85 150
intonation 2
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/m6
================================================
language variant
name male6
gender male
pitch 82 117
formant 0 100 90 120
formant 1 100 90 140
formant 2 100 70 140
formant 3 100 75 140
formant 4 100 80 140
formant 5 100 80 140
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/m7
================================================
language variant
name male7
gender male
pitch 75 125
formant 0 100 125 100
formant 1 100 90 80
formant 2 100 70 90
formant 3 100 60 90
formant 4 100 60 90
formant 5 75 50 90
formant 6 90 50 100
formant 7 100 50 100
formant 8 100 50 100
voicing 155
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/m8
================================================
language variant
name male8
gender male 50
pitch 65 102
formant 0 100 125 100
formant 1 96 90 80
formant 2 97 70 90
formant 3 97 60 90
formant 4 97 60 90
formant 5 100 50 90
formant 6 90 50 100
formant 7 100 50 100
formant 8 100 50 100
tone 100 255 600 70 1200 22 2000 66 3000 12
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/marcelo
================================================
language variant
name Marcelo
pitch 65 115
formant 0 65 161 35
formant 1 75 131 65
formant 2 90 60 40
formant 3 59 50 55
formant 4 69 65 35
formant 5 69 60 25
formant 6 59 60 35
formant 7 149 0 10
formant 8 199 0 90
voicing 135
consonants 115 120
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/max
================================================
language variant
name Max
formant 0 90 120 100
formant 1 100 100 75
formant 2 100 100 75
formant 3 100 80 75
formant 4 100 80 75
formant 5 100 80 75
formant 6 100 0 75
formant 7 100 0 75
formant 8 100 0 75
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/michel
================================================
language variant
name Michel
gender male 25
pitch 82 122
echo 0 0
flutter 0
roughness 0
stressAmp 20 18 20 20 20 22 22 22
formant 0 105 200 140
formant 1 95 150 120
formant 2 100 120 140
formant 3 95 95 140
formant 4 30 30 30 -100
formant 5 90 90 90
formant 6 110 60 65
formant 7 100 0 100
formant 8 100 0 100
voicing 35
consonants 60 40
tone 400 160 1500 100 3000 70 4500 40
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/miguel
================================================
language variant
name Miguel
gender male 25
pitch 80 130
echo 0 0
flutter 0
roughness 0
stressAmp 20 18 20 20 20 22 22 22
formant 0 105 200 140
formant 1 95 150 120
formant 2 100 120 140
formant 3 95 95 140
formant 4 30 30 30 -100
formant 5 90 90 90
formant 6 110 60 65
formant 7 100 0 100
formant 8 100 0 100
voicing 35
consonants 60 40
tone 300 240 400 160 1500 100 3000 70
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/mike2
================================================
language variant
name Mike2
klatt 6
voicing 170
pitch 67 107
formant 1 95 100 100
formant 2 95 100 100
formant 3 105 100 100
formant 4 115 100 100
formant 5 115 100 100
consonants 70 150
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/norbert
================================================
##Please note the 2 number signs, or pound signs in this file are for comments to help you to understand what the settings are and how to set them.
## Language sets the language of your voice. This setting is required for every voice that you make.
##The next line is a setting you can change. However if you don't know the language codes it may be best to leave the setting as it is.
language variant
## The name setting is the name that will show up in the voice settings in the variant combo box.
##The next line is a setting you can change
name norbert
##The formant settings
## Formant 0 is used to give a low frequency component to the sounds.
## The three numbers are frequency, strength, and Width, in that order. Please note, the numbers are seperated by a space.
##The next line is a setting you can change
formant 0 100 100 100
# Formants 1,2, and 3 are the standard three formants which define vowels.
##The next 3 lines are settings you can change
formant 1 100 100 100
formant 2 75 50 100
formant 3 100 100 100
# Formants 4,5 are higher than F3. They affect the quality of the voice.
##The next 2 lines are settings that you can change.
formant 4 100 100 100
formant 5 100 100 100
## Formants 6, 7, and 8 are weak, high frequency, additions to vowels to give a clearer sound.
##The next 3 lines are settings that you can change.
formant 6 100 100 100
formant 7 100 100 100
formant 8 100 100 100
##Intonation affects the rise and fall of the voice
## The settings are 1 default, 2 less intonation, 3 less intonation and commas do not raise the pitch, 4 the pitch rises at the end of a sentence rather than falling.
##The next line is a setting you can change.
intonation 1
# Setting the pitch range. The first number gives a base pitch to the voice (value in Hertz). The second number controls the range of pitches used by the voice. Setting it equal
# to the first number will give a monotone sounding voice. The default values are 82 and 118.
pitch 82 118
## The tone setting. The first number on the setting line, 600, is the frequency setting for the amount of bass in the voice.
## The second number on the tone line is the volume of the bass frequency. You can set it from 0 to 255, 0 being the least amount, 255 being the most.
##The third number on the tone line, 1200, is the mid range frequency. The fourth number on the line is the setting to change the volume of the mid range frequency.
##0 being the least amount and 255 being the maximum.
## The fifth number on the tone line, 2000, is the treble frequency. The sixth number is the volume of the treble frequency. 0 is the minimum and 255 is the maximum.
## You will notice that all 3 frequencies are set to 255.
##The next line is a setting that you can change.
tone 600 255 1000 100 5000 255
##This file does not include all of the settings that can be used to modify an E Speak voice. It is intended to get you familiar with what the settings do.
##However, you can go to http://espeak.sourceforge.net/voices.html and read further information about other settings that can be added and changed. I hope this helps, and Have fun.
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/pablo
================================================
##Pleas note the 2 number signs, or pound signs in this file are for comments to help you to understand what the settings are and how to set them.
## Language sets the language of your voice. This setting is required for every voice that you make.
##The next line is a setting you can change. However if you don't know the language codes it may be best to leave the setting as it is.
language variant
## The name setting is the name that will show up in the voice settings in the variant combo box.
##The next line is a setting you can change
name Pablo
##The formant settings
## Formant 0 is used to give a low frequency component to the sounds.
## The three numbers are frequency, strength, and Width, in that order. Please note, the numbers are seperated by a space.
##The next line is a setting you can change
formant 0 90 100 90
# Formants 1,2, and 3 are the standard three formants which define vowels.
##The next 3 lines are settings you can change
formant 1 95 100 80
formant 2 97 100 80
formant 3 98 90 80
# Formants 4,5 are higher than F3. They affect the quality of the voice.
##The next 2 lines are settings that you can change.
formant 4 110 100 100
formant 5 110 100 100
## Formants 6, 7, and 8 are weak, high frequency, additions to vowels to give a clearer sound.
##The next 3 lines are settings that you can change.
formant 6 100 100 100
formant 7 100 100 100
formant 8 100 100 100
##Intonation affects the rise and fall of the voice
## The settings are 1 default, 2 less intonation, 3 less intonation and commas do not raise the pitch, 4 the pitch rises at the end of a sentence rather than falling.
##The next line is a setting you can change.
intonation 3
echo 30 30
# Setting the pitch range. The first number gives a base pitch to the voice (value in Hertz). The second number controls the range of pitches used by the voice. Setting it equal
# to the first number will give a monotone sounding voice. The default values are 82 and 118.
pitch 82 130
## The tone setting. The first number on the setting line, 600, is the frequency setting for the amount of bass in the voice.
## The second number on the tone line is the volume of the bass frequency. You can set it from 0 to 255, 0 being the least amount, 255 being the most.
##The third number on the tone line, 1200, is the mid range frequency. The fourth number on the line is the setting to change the volume of the mid range frequency.
## 0 being the least amount and 255 being the maximum.
## The fifth number on the tone line, 2000, is the treble frequency. The sixth number is the volume of the treble frequency. 0 is the minimum and 255 is the maximum.
## You will notice that all 3 frequencies are set to 255.
##The next line is a setting that you can change.
tone 600 255 1200 200 2000 255
##This file does not include all of the settings that can be used to modify an E Speak voice. It is intended to get you familiar with what the settings do.
#However, you can go to http://espeak.sourceforge.net/voices.html and read further information about other settings that can be added and changed. I hope this helps, and Have fun.
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/paul
================================================
language variant
name Paul
pitch 70 100
formant 0 90 120 100
formant 1 103 100 75
formant 2 98 100 75
formant 3 100 80 75
formant 4 102 30 100
formant 5 100 80 100
formant 6 100 80 75
formant 7 100 0 75
formant 8 100 60 75
consonants 90 60
voicing 230
tone 420 255 1300 130 4000 100
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/pedro
================================================
language variant
name Pedro
formant 0 100 150 100
formant 1 95 100 80
formant 2 95 100 80
formant 3 100 100 90
formant 4 100 100 100
formant 5 100 100 100
formant 6 100 100 100
formant 7 100 100 100
formant 8 100 100 100
intonation 3
pitch 82 118
tone 600 255 1200 255 2000 255
stressLength 0 1 2 3 4 5 6 7
stressAdd 130 140 140 100 0 0 130 160
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/quincy
================================================
language variant
name Quincy
pitch 67 100
formant 0 85 108 106 3
formant 1 97 110 56
formant 2 96 80 60
formant 3 101 50 50
formant 4 110 33 55
formant 5 110 22 65
formant 6 77 60 60 65
formant 7 66 0 100
formant 8 100 0 100
voicing 99
consonants 66 90
roughness 0
tone 600 170 1200 100 2000 70
stressAmp 16 16 24 20 20 16 28 24
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/rob
================================================
language variant
name Rob
pitch 50 130
formant 0 100 100 100
formant 1 95 100 60
formant 2 97 90 50
formant 3 101 70 50
formant 4 110 65 55
formant 5 110 70 65
formant 6 110 70 65
formant 7 0 0 0
formant 8 0 0 0
voicing 115
consonants 110 120
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/robert
================================================
language variant
name Robert
pitch 65 115
formant 0 85 108 100
formant 1 95 110 60
formant 2 97 90 50
formant 3 101 50 50
formant 4 110 65 55
formant 5 110 60 65
formant 6 110 60 65
formant 7 100 0 100
formant 8 100 0 100
voicing 115
consonants 110 120
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/robosoft
================================================
language variant
name Robosoft
echo 30 1000
klatt 5
pitch 60 90
formant 0 100 125 100
formant 1 96 90 80
formant 2 97 70 90
formant 3 97 60 90
formant 4 97 60 90
formant 5 100 50 90
formant 6 90 50 100
formant 7 100 50 100
formant 8 100 50 100
roughness 50
intonation 0
voicing 80
consonants 110 120
stressLength 0 1 2 3 4 5 6 7
stressAdd 130 140 140 100 0 0 130 160
stressAmp 16 16 24 24 16 16 20 24
tone 100 255 600 70 1200 22 2000 66 3000 12
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/robosoft2
================================================
language variant
name Robosoft2
echo 10 600
klatt 4
pitch 70 100
formant 0 100 125 100
formant 1 96 90 80
formant 2 97 70 90
formant 3 97 60 90
formant 4 97 60 90
formant 5 100 50 90
formant 6 90 50 100
formant 7 100 50 100
formant 8 100 50 100
roughness 75
intonation -25
voicing 80
consonants 110 120
stressLength 0 1 2 3 4 5 6 7
stressAdd 130 140 140 100 0 0 130 160
stressAmp 16 16 24 24 16 16 20 24
tone 100 255 600 70 1200 22 2000 66 3000 12
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/robosoft3
================================================
language variant
name Robosoft3
echo 10 10000
klatt 4
pitch 75 115
formant 0 100 125 100
formant 1 96 90 80
formant 2 97 70 90
formant 3 97 60 90
formant 4 97 60 90
formant 5 100 50 90
formant 6 90 50 100
formant 7 100 50 100
formant 8 100 50 100
roughness 5
intonation 10
voicing 150
consonants 110 120
stressLength 0 1 2 3 4 5 6 7
stressAdd 130 140 140 100 0 0 130 160
stressAmp 16 16 24 24 16 16 20 24
tone 100 255 600 70 1200 22 2000 66 3000 12
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/robosoft4
================================================
language variant
name Robosoft4
echo 10 10000
pitch 75 115
formant 0 100 125 100
formant 1 96 90 80
formant 2 97 70 90
formant 3 97 60 90
formant 4 97 60 90
formant 5 100 50 90
formant 6 90 50 100
formant 7 100 50 100
formant 8 100 50 100
roughness 5
intonation 10
voicing 150
consonants 110 120
stressLength 0 1 2 3 4 5 6 7
stressAdd 130 140 140 100 0 0 130 160
stressAmp 16 16 24 24 16 16 20 24
tone 100 255 600 70 1200 22 2000 66 3000 12
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/robosoft5
================================================
language variant
name Robosoft5
echo 10 10000
pitch 75 115
formant 0 100 125 100
formant 1 96 90 80
formant 2 97 70 90
formant 3 97 60 90
formant 4 97 60 90
formant 5 100 50 90
formant 6 90 50 100
formant 7 100 50 100
formant 8 100 50 100
roughness 0
intonation 10
voicing 150
consonants 60 40
stressLength 0 1 2 3 4 5 6 7
stressAdd 130 140 140 100 0 0 130 160
stressAmp 16 16 24 24 16 16 20 24
tone 100 255 600 70 1200 22 2000 66 3000 12
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/robosoft6
================================================
language variant
name Robosoft6
echo 40 10000
pitch 150 150
formant 0 100 125 100
formant 1 96 90 80
formant 2 97 70 90
formant 3 97 60 90
formant 4 97 60 90
formant 5 100 50 90
formant 6 90 50 100
formant 7 100 50 100
formant 8 100 50 100
tone 100 255 600 70 1200 22 2000 66 3000 12
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/robosoft7
================================================
language variant
name Robosoft7
echo 10 10000
pitch 75 115
formant 0 90 120 100
formant 1 100 100 75
formant 2 100 100 75
formant 3 100 80 75
formant 4 100 80 75
formant 5 100 80 75
formant 6 100 0 75
formant 7 100 0 75
formant 8 100 0 75
roughness 0
intonation 10
voicing 150
consonants 60 40
stressLength 0 1 2 3 4 5 6 7
stressAdd 130 140 140 100 0 0 130 160
tone 100 255 600 70 1200 22 2000 66 3000 12
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/robosoft8
================================================
language variant
name Robosoft8
echo 40 10000
pitch 150 150
formant 0 90 120 100
formant 1 100 100 75
formant 2 100 100 75
formant 3 100 80 75
formant 4 100 80 75
formant 5 100 80 75
formant 6 100 0 75
formant 7 100 0 75
formant 8 100 0 75
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/sandro
================================================
// This file is UTF-8 encoded
// Variant sandro (ver.25-3) for eSpeak-ng Copyright (C)2019 by Lolo vmanolo301@gmail.com
language variant
name sandro
gender male
formant 0 95 146 100
formant 1 98 90 100
formant 2 103 98 100
formant 3 100 90 100
formant 4 100 101 100
formant 5 110 120 100 2123
formant 6 100 100 100 1200
formant 7 32 125 80 600
formant 8 34 95 30 49
voicing 165
consonants 194 255
pitch 78 115
roughness 3
breath 20 5 2 10 5 0 27 100
breathw 255 255 60 180 160 255 255 255
tone 500 210 470 70 160 155 2985 32
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/shelby
================================================
language variant
name shelby
flutter 0
roughness 0
formant 0 100 160 190
formant 1 90 90 90
formant 2 140 140 140
formant 3 130 150 130
formant 4 110 110 110
formant 5 120 120 110
formant 6 10 10 10
formant 7 10 10 10
formant 8 10 10 10
pitch 100 210
voicing 40
consonants 90 70
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/steph
================================================
language variant
name Steph
gender female
pitch 166 200
flutter 1
roughness 0
tone 100 255 600 70 1200 22 2000 66 3000 12
formant 0 99 80 150
formant 1 120 60 160
formant 2 99 70 110 150
formant 3 116 77 150
formant 4 9 59 110
formant 5 100 50 2
formant 6 104 80 150
formant 7 110 70 150
formant 8 110 70 150
stressAmp 16 16 24 24 16 16 20 24
consonants 55 90
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/steph2
================================================
language variant
name Steph2
gender female
pitch 166 200
flutter 1
roughness 0
tone 100 255 600 70 1200 22 2000 66 3000 12
formant 0 99 100 150
formant 1 120 80 160
formant 2 99 90 110 150
formant 3 116 97 150
formant 4 9 73 116
formant 5 100 70 2
formant 6 104 100 150
formant 7 110 90 150
formant 8 110 90 150
stressAmp 16 16 24 24 16 16 20 24
consonants 55 90
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/steph3
================================================
language variant
name Steph3
gender female
pitch 166 200
flutter 1
roughness 0
voicing 200
tone 100 255 600 70 1200 22 2000 66 3000 12
formant 0 99 80 150
formant 1 120 60 160
formant 2 99 70 110 150
formant 3 116 77 150
formant 4 9 59 110
formant 5 100 50 2
formant 6 104 80 150
formant 7 110 70 150
formant 8 110 70 150
stressAmp 16 16 24 24 16 16 20 24
consonants 70 90
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/travis
================================================
language variant
name travis
gender male 30
pitch 75 120
formant 0 90 90 90 90
formant 1 50 100 80 95
formant 2 90 60 90 100
formant 3 80 80 90 100
formant 4 50 90 100 100
formant 5 100 95 100 55
formant 6 80 50 100 85
formant 7 60 60 60 120
formant 8 80 80 140 100
tone 600 100 1000 200 1500 50
flutter 1
roughness 3
voicing 200
consonants 120 190
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/victor
================================================
language variant
name victor
gender male 25
formant 0 100 100 100
formant 1 95 95 95
formant 2 90 90 90
formant 3 90 90 90
formant 4 40 40 40
formant 5 80 80 80
formant 6 20 20 20
formant 7 20 20 20
formant 8 20 20 20
pitch 80 110
voicing 60
breath 2 4
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/whisper
================================================
language variant
name whisper
gender male
pitch 82 117
flutter 20
formant 0 100 0 100
formant 1 100 80 100
voicing 17
breath 75 75 50 40 15 10
breathw 150 150 200 200 400 400
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/whisperf
================================================
language variant
name female_whisper
gender female
pitch 160 220
roughness 3
formant 0 105 0 150
formant 1 110 40 160
formant 2 110 70 150
formant 3 110 70 150
formant 4 115 80 150
formant 5 115 80 150
formant 6 110 70 150
formant 7 110 70 150
formant 8 110 70 150
stressAdd 0 0 -10 -10 0 0 10 40
// whisper
voicing 20
breath 75 75 50 40 15 10
breathw 150 150 200 200 400 400
================================================
FILE: app/src/main/assets/espeak-ng-data/voices/!v/zac
================================================
language variant
name Zac
flutter 5
pitch 240 390
formant 0 145 100 145
formant 1 145 100 145
formant 2 145 100 145
formant 3 145 100 145
formant 4 145 100 145
formant 5 145 120 145
formant 6 145 120 145
formant 7 145 120 145
formant 8 145 120 145
voicing 80
================================================
FILE: app/src/main/java/com/k2fsa/sherpa/onnx/tts/engine/CheckVoiceData.kt
================================================
package com.k2fsa.sherpa.onnx.tts.engine
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.speech.tts.TextToSpeech
import androidx.appcompat.app.AppCompatActivity
class CheckVoiceData : AppCompatActivity() {
lateinit var mContext: Context
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mContext = this
val intent = Intent().apply {
putStringArrayListExtra(
TextToSpeech.Engine.EXTRA_AVAILABLE_VOICES,
TtsEngine.getAvailableLanguages(mContext)
)
putStringArrayListExtra(TextToSpeech.Engine.EXTRA_UNAVAILABLE_VOICES, arrayListOf())
}
setResult(TextToSpeech.Engine.CHECK_VOICE_DATA_PASS, intent)
finish()
}
}
================================================
FILE: app/src/main/java/com/k2fsa/sherpa/onnx/tts/engine/Downloader.java
================================================
package com.k2fsa.sherpa.onnx.tts.engine;
import android.app.Activity;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import com.k2fsa.sherpa.onnx.tts.engine.databinding.ActivityManageLanguagesBinding;
@SuppressWarnings("ResultOfMethodCallIgnored")
public class Downloader {
static final String onnxModel = "model.onnx";
static final String tokens = "tokens.txt";
static long onnxModelDownloadSize = 0L;
static long tokensDownloadSize = 0L;
static boolean onnxModelFinished = false;
static boolean tokensFinished = false;
static int onnxModelSize = 0;
static int tokensSize = 0;
public static void downloadModels(final Activity activity, ActivityManageLanguagesBinding binding, String model, String lang, String country, String type) {
String modelName="";
if (type.equals("vits-piper")) modelName = model + ".onnx";
else if (type.equals("vits-coqui")) modelName = "model.onnx";
String onnxModelUrl = "https://huggingface.co/csukuangfj/"+ type + "-" + model + "/resolve/main/" + modelName;
String tokensUrl = "https://huggingface.co/csukuangfj/" + type + "-" + model + "/resolve/main/tokens.txt";
File directory = new File(activity.getExternalFilesDir(null)+ "/" + lang + country + "/");
if (!directory.exists() && !directory.mkdirs()) {
Log.e("TTS Engine", "Failed to make directory: " + directory);
return;
}
activity.runOnUiThread(() -> binding.downloadSize.setVisibility(View.VISIBLE));
File onnxModelFile = new File(activity.getExternalFilesDir(null)+ "/" + lang + country + "/" + onnxModel);
if (onnxModelFile.exists()) onnxModelFile.delete();
if (!onnxModelFile.exists()) {
onnxModelFinished = false;
Log.d("TTS Engine", "onnx model file does not exist");
Thread thread = new Thread(() -> {
try {
URL url;
url = new URL(onnxModelUrl);
Log.d("TTS Engine", "Download model");
URLConnection ucon = url.openConnection();
ucon.setReadTimeout(5000);
ucon.setConnectTimeout(10000);
onnxModelSize = ucon.getContentLength();
InputStream is = ucon.getInputStream();
BufferedInputStream inStream = new BufferedInputStream(is, 1024 * 5);
File tempOnnxFile = new File(activity.getExternalFilesDir(null)+ "/" + lang + country + "/" + "model.tmp");
if (tempOnnxFile.exists()) tempOnnxFile.delete();
FileOutputStream outStream = new FileOutputStream(tempOnnxFile);
byte[] buff = new byte[5 * 1024];
int len;
while ((len = inStream.read(buff)) != -1) {
outStream.write(buff, 0, len);
if (tempOnnxFile.exists()) onnxModelDownloadSize = tempOnnxFile.length();
activity.runOnUiThread(() -> {
binding.downloadSize.setText((tokensDownloadSize + onnxModelDownloadSize)/1024/1024 + " MB / " + (onnxModelSize + tokensSize)/1024/1024 + " MB");
});
}
outStream.flush();
outStream.close();
inStream.close();
if (!tempOnnxFile.exists()) {
throw new IOException();
}
tempOnnxFile.renameTo(onnxModelFile);
onnxModelFinished = true;
activity.runOnUiThread(() -> {
if (tokensFinished && onnxModelFinished && binding.buttonStart.getVisibility()==View.GONE){
binding.buttonStart.setVisibility(View.VISIBLE);
PreferenceHelper preferenceHelper = new PreferenceHelper(activity);
preferenceHelper.setCurrentLanguage(lang);
LangDB langDB = LangDB.getInstance(activity);
langDB.addLanguage(model, lang, country, 0, 1.0f, 1.0f, type);
}
});
} catch (IOException i) {
activity.runOnUiThread(() -> Toast.makeText(activity, activity.getResources().getString(R.string.error_download), Toast.LENGTH_SHORT).show());
onnxModelFile.delete();
Log.w("TTS Engine", activity.getResources().getString(R.string.error_download), i);
}
});
thread.start();
}
File tokensFile = new File(activity.getExternalFilesDir(null) + "/" + lang + country + "/" + tokens);
if (tokensFile.exists()) tokensFile.delete();
if (!tokensFile.exists()) {
tokensFinished = false;
Log.d("TTS Engine", "tokens file does not exist");
Thread thread = new Thread(() -> {
try {
URL url = new URL(tokensUrl);
Log.d("TTS Engine", "Download tokens file");
URLConnection ucon = url.openConnection();
ucon.setReadTimeout(5000);
ucon.setConnectTimeout(10000);
tokensSize = ucon.getContentLength();
InputStream is = ucon.getInputStream();
BufferedInputStream inStream = new BufferedInputStream(is, 1024 * 5);
File tempTokensFile = new File(activity.getExternalFilesDir(null)+ "/" + lang + country + "/" + "tokens.tmp");
if (tempTokensFile.exists()) tempTokensFile.delete();
FileOutputStream outStream = new FileOutputStream(tempTokensFile);
byte[] buff = new byte[5 * 1024];
int len;
while ((len = inStream.read(buff)) != -1) {
outStream.write(buff, 0, len);
if (tempTokensFile.exists()) tokensDownloadSize = tempTokensFile.length();
activity.runOnUiThread(() -> {
binding.downloadSize.setText((tokensDownloadSize + onnxModelDownloadSize)/1024/1024 + " MB / " + (onnxModelSize + tokensSize)/1024/1024 + " MB");
});
}
outStream.flush();
outStream.close();
inStream.close();
if (!tempTokensFile.exists()) {
throw new IOException();
}
tempTokensFile.renameTo(tokensFile);
tokensFinished = true;
activity.runOnUiThread(() -> {
if (tokensFinished && onnxModelFinished && binding.buttonStart.getVisibility()==View.GONE){
binding.buttonStart.setVisibility(View.VISIBLE);
PreferenceHelper preferenceHelper = new PreferenceHelper(activity);
preferenceHelper.setCurrentLanguage(lang);
LangDB langDB = LangDB.getInstance(activity);
langDB.addLanguage(model, lang, country, 0, 1.0f, 1.0f, type);
}
});
} catch (IOException i) {
activity.runOnUiThread(() -> Toast.makeText(activity, activity.getResources().getString(R.string.error_download), Toast.LENGTH_SHORT).show());
tokensFile.delete();
Log.w("TTS Engine", activity.getResources().getString(R.string.error_download), i);
}
});
thread.start();
}
}
}
================================================
FILE: app/src/main/java/com/k2fsa/sherpa/onnx/tts/engine/GetSampleText.kt
================================================
package com.k2fsa.sherpa.onnx.tts.engine
import android.app.Activity
import android.content.Intent
import android.os.Bundle
import android.speech.tts.TextToSpeech
fun getSampleText(lang: String): String {
var text = ""
when (lang) {
"ara" -> {
text = "هذا هو محرك تحويل النص إلى كلام باستخدام الجيل القادم من كالدي"
}
"ben" -> {
text = "এটি একটি টেক্সট-টু-স্পীচ ইঞ্জিন যা পরবর্তী প্রজন্মের কালডি ব্যবহার করে"
}
"bul" -> {
text =
"Това е машина за преобразуване на текст в реч, използваща Kaldi от следващо поколение"
}
"cat" -> {
text = "Aquest és un motor de text a veu que utilitza Kaldi de nova generació"
}
"cym" -> {
text = "Peiriant testun-i-lais yw hwn sy'n defnyddio Kaldi'r genhedlaeth nesaf"
}
"ces" -> {
text = "Toto je převodník textu na řeč využívající novou generaci kaldi"
}
"dan" -> {
text = "Dette er en tekst til tale-motor, der bruger næste generation af kaldi"
}
"deu" -> {
text =
"Dies ist eine Sprachausgabe, die Kaldi der nächsten Generation verwendet"
}
"ell" -> {
text = "Αυτή είναι μια μηχανή κειμένου σε ομιλία που χρησιμοποιεί kaldi επόμενης γενιάς"
}
"eng" -> {
text = "This is a text-to-speech engine using next generation Kaldi"
}
"est" -> {
text = "See on teksti kõneks muutmise mootor, mis kasutab järgmise põlvkonna Kaldi"
}
"fin" -> {
text = "Tämä on tekstistä puheeksi -moottori, joka käyttää seuraavan sukupolven kaldia"
}
"fra" -> {
text = "Il s'agit d'un moteur de synthèse vocale utilisant Kaldi de nouvelle génération"
}
"gle" -> {
text = "Is inneall téacs-go-hurlabhra é seo a úsáideann Kaldi den chéad ghlúin eile"
}
"hrv" -> {
text =
"Ovo je mehanizam za pretvaranje teksta u govor koji koristi Kaldi sljedeće generacije"
}
"hin" -> {
text = "यह एक अगली पीढ़ी के काल्डी एप्लिकेशन है, जो लिखित शब्दों और वाक्यांशों को बोली मे परिवर्तित करता है"
}
"hun" -> {
text = "Ez egy szövegfelolvasó motor a következő generációs kaldi használatával"
}
"isl" -> {
text = "Þetta er texta í tal vél sem notar næstu kynslóð kaldi"
}
"ita" -> {
text = "Questo è un motore di sintesi vocale che utilizza kaldi di nuova generazione"
}
"kat" -> {
text = "ეს არის ტექსტიდან მეტყველების ძრავა შემდეგი თაობის კალდის გამოყენებით"
}
"kaz" -> {
text = "Бұл келесі буын kaldi көмегімен мәтіннен сөйлеуге арналған қозғалтқыш"
}
"mlt" -> {
text = "Din hija magna text-to-speech li tuża Kaldi tal-ġenerazzjoni li jmiss"
}
"lav" -> {
text = "Šis ir teksta pārvēršanas runā dzinējs, kas izmanto nākamās paaudzes Kaldi"
}
"lit" -> {
text = "Tai teksto į kalbą variklis, kuriame naudojamas naujos kartos Kaldi"
}
"ltz" -> {
text = "Dëst ass en Text-zu-Speech-Motor mat der nächster Generatioun Kaldi"
}
"nep" -> {
text = "यो अर्को पुस्ता काल्डी प्रयोग गरेर स्पीच इन्जिनको पाठ हो"
}
"nld" -> {
text =
"Dit is een tekst-naar-spraak-engine die gebruik maakt van Kaldi van de volgende generatie"
}
"nor" -> {
text = "Dette er en tekst til tale-motor som bruker neste generasjons kaldi"
}
"pol" -> {
text = "Jest to silnik syntezatora mowy wykorzystujący Kaldi nowej generacji"
}
"por" -> {
text =
"Este é um mecanismo de conversão de texto em fala usando Kaldi de próxima geração"
}
"ron" -> {
text = "Acesta este un motor text to speech care folosește generația următoare de kadi"
}
"rus" -> {
text =
"Это движок преобразования текста в речь, использующий Kaldi следующего поколения."
}
"slk" -> {
text = "Toto je nástroj na prevod textu na reč využívajúci kaldi novej generácie"
}
"slv" -> {
text =
"To je mehanizem za pretvorbo besedila v govor, ki uporablja Kaldi naslednje generacije"
}
"spa" -> {
text = "Este es un motor de texto a voz que utiliza kaldi de próxima generación."
}
"srp" -> {
text =
"Ово је механизам за претварање текста у говор који користи калди следеће генерације"
}
"swa" -> {
text = "Haya ni maandishi kwa injini ya hotuba kwa kutumia kizazi kijacho kaldi"
}
"swe" -> {
text = "Detta är en text till tal-motor som använder nästa generations kaldi"
}
"tur" -> {
text = "Bu, yeni nesil kaldi'yi kullanan bir metinden konuşmaya motorudur"
}
"ukr" -> {
text =
"Це механізм перетворення тексту на мовлення, який використовує kaldi нового покоління"
}
"vie" -> {
text = "Đây là công cụ chuyển văn bản thành giọng nói sử dụng kaldi thế hệ tiếp theo"
}
"zho", "cmn" -> {
text = "使用新一代卡尔迪的语音合成引擎"
}
}
return text
}
class GetSampleText : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
var result = TextToSpeech.LANG_AVAILABLE
val text: String = getSampleText(TtsEngine.lang ?: "")
if (text.isEmpty()) {
result = TextToSpeech.LANG_NOT_SUPPORTED
}
val intent = Intent().apply {
if (result == TextToSpeech.LANG_AVAILABLE) {
putExtra(TextToSpeech.Engine.EXTRA_SAMPLE_TEXT, text)
} else {
putExtra("sampleText", text)
}
}
setResult(result, intent)
finish()
}
}
================================================
FILE: app/src/main/java/com/k2fsa/sherpa/onnx/tts/engine/GithubStar.java
================================================
package com.k2fsa.sherpa.onnx.tts.engine;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import androidx.preference.PreferenceManager;
public class GithubStar {
public static void setAskForStar(boolean askForStar, Context context) {
SharedPreferences prefManager = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = prefManager.edit();
editor.putBoolean("askForStar", askForStar);
editor.apply();
}
public static boolean shouldShowStarDialog(Context context) {
SharedPreferences prefManager = PreferenceManager.getDefaultSharedPreferences(context);
int versionCode = prefManager.getInt("versionCode", 0);
boolean askForStar = prefManager.getBoolean("askForStar", true);
if (prefManager.contains("versionCode") && BuildConfig.VERSION_CODE > versionCode && askForStar) { //not at first start, only after upgrade and only if use has not yet given a star or has declined
SharedPreferences.Editor editor = prefManager.edit();
editor.putInt("versionCode", BuildConfig.VERSION_CODE);
editor.apply();
return true;
} else {
SharedPreferences.Editor editor = prefManager.edit();
editor.putInt("versionCode", BuildConfig.VERSION_CODE);
editor.apply();
return false;
}
}
public static void starDialog(Context context, String url) {
SharedPreferences prefManager = PreferenceManager.getDefaultSharedPreferences(context);
if (prefManager.getBoolean("askForStar", true)) {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
alertDialogBuilder.setMessage(R.string.dialog_StarOnGitHub);
alertDialogBuilder.setPositiveButton(context.getString(android.R.string.ok), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
setAskForStar(false, context);
}
});
alertDialogBuilder.setNegativeButton(context.getString(android.R.string.no), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
setAskForStar(false, context);
}
});
alertDialogBuilder.setNeutralButton(context.getString(R.string.dialog_Later_button), null);
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
}
}
================================================
FILE: app/src/main/java/com/k2fsa/sherpa/onnx/tts/engine/InstallVoiceData.kt
================================================
package com.k2fsa.sherpa.onnx.tts.engine
import android.app.Activity
import android.os.Bundle
import android.view.Window
class InstallVoiceData : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
requestWindowFeature(Window.FEATURE_NO_TITLE)
super.onCreate(savedInstanceState)
}
}
================================================
FILE: app/src/main/java/com/k2fsa/sherpa/onnx/tts/engine/LangDB.java
================================================
package com.k2fsa.sherpa.onnx.tts.engine;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import java.util.ArrayList;
import java.util.List;
public class LangDB extends SQLiteOpenHelper {
// Database name and table columns
private static final String DB_NAME = "Languages.db";
private static final int DATABASE_VERSION = 2;
public static final String TABLE_NAME = "Languages";
private static final String COLUMN_ID = "ID";
private static final String COLUMN_NAME = "ModelName";
private static final String COLUMN_LANG = "Language";
private static final String COLUMN_COUNTRY = "Country";
private static final String COLUMN_SID = "SpeakerID";
private static final String COLUMN_SPEED = "Speed";
private static final String COLUMN_TYPE = "ModelType";
private static final String COLUMN_VOLUME = "Volume";
private static LangDB instance = null;
private final Context mContext;
public LangDB(Context context) {
super(context, DB_NAME, null, DATABASE_VERSION);
mContext = context.getApplicationContext(); //mContext = context creates memory leak
}
@Override
public void onCreate(SQLiteDatabase db) {
// Create the table for bird observations with all columns and their data types.
String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS "+TABLE_NAME+" (" +
COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," +
COLUMN_NAME + " TEXT," +
COLUMN_LANG + " TEXT," +
COLUMN_COUNTRY + " TEXT," +
COLUMN_SID + " INTEGER," +
COLUMN_SPEED + " FLOAT," +
COLUMN_TYPE + " TEXT," +
COLUMN_VOLUME + " FLOAT);";
db.execSQL(CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
PreferenceHelper preferenceHelper = new PreferenceHelper(mContext);
switch(oldVersion) {
case 1:
db.execSQL("ALTER TABLE "+TABLE_NAME+" ADD COLUMN "+ COLUMN_VOLUME +" REAL DEFAULT " + preferenceHelper.getVolume());
// we want both updates, so no break statement here...
}
}
public synchronized void addLanguage(String name, String lang, String country, int sid, float speed, float volume, String type) {
// Insert a new row into the table with all columns and their values from parameters.
SQLiteDatabase db = getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(COLUMN_NAME, name);
cv.put(COLUMN_LANG, lang);
cv.put(COLUMN_COUNTRY, country);
cv.put(COLUMN_SID, sid);
cv.put(COLUMN_SPEED, speed);
cv.put(COLUMN_TYPE, type);
cv.put(COLUMN_VOLUME, volume);
db.insert(TABLE_NAME, null, cv); // Insert the row into the table with all columns and their values from parameters.
}
public synchronized void clearAllEntries() {
SQLiteDatabase db = getWritableDatabase();
String CLEAR_TABLE = "DELETE FROM "+ TABLE_NAME;
db.execSQL(CLEAR_TABLE); // Delete all rows in the table, effectively clearing it out.
}
public synchronized List<Language> getAllInstalledLanguages() {
SQLiteDatabase db = this.getReadableDatabase();
String SELECT_ALL = "SELECT * FROM "+ TABLE_NAME;
Cursor cursor = db.rawQuery(SELECT_ALL, null); // Execute the query to select all rows from the table and store them in a cursor object for further processing.
List<Language> languages = new ArrayList<>();
if (cursor.moveToFirst()) {
do {
Language language = new Language();
language.setId(cursor.getInt(0));
language.setName(cursor.getString(1));
language.setLang(cursor.getString(2));
language.setCountry(cursor.getString(3));
language.setSid(cursor.getInt(4));
language.setSpeed(cursor.getFloat(5));
language.setType(cursor.getString(6));
language.setVolume(cursor.getFloat(7));
languages.add(language);
} while (cursor.moveToNext());
}
cursor.close();
return languages;
}
public synchronized void updateLang(String lang, int sid, float speed, float volume) {
SQLiteDatabase database = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_SID, sid);
values.put(COLUMN_SPEED, speed);
values.put(COLUMN_VOLUME, volume);
database.update(TABLE_NAME, values, COLUMN_LANG + " = ?", new String[]{lang});
database.close();
}
public static LangDB getInstance(Context context) {
if (instance == null && context != null) {
instance = new LangDB(context.getApplicationContext());
}
return instance;
}
public void removeLang(String language) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_NAME, COLUMN_LANG + " = ?",
new String[]{language});
db.close();
}
}
================================================
FILE: app/src/main/java/com/k2fsa/sherpa/onnx/tts/engine/Language.java
================================================
package com.k2fsa.sherpa.onnx.tts.engine;
public class Language {
private int id;
private String name;
private String lang;
private String country;
private int sid;
private float speed;
private float volume;
private String type;
public Language() {}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void setLang(String lang) {this.lang = lang;}
public String getLang() {return lang;}
public void setCountry(String country) {this.country = country;}
public String getCountry() {return country;}
public void setSid(int sid) {this.sid = sid;}
public int getSid() {return sid;}
publ
gitextract_z5s892v4/ ├── .gitignore ├── LICENSE ├── README.md ├── app/ │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── assets/ │ │ ├── .gitkeep │ │ └── espeak-ng-data/ │ │ ├── af_dict │ │ ├── am_dict │ │ ├── an_dict │ │ ├── ar_dict │ │ ├── as_dict │ │ ├── az_dict │ │ ├── ba_dict │ │ ├── be_dict │ │ ├── bg_dict │ │ ├── bn_dict │ │ ├── bpy_dict │ │ ├── bs_dict │ │ ├── ca_dict │ │ ├── chr_dict │ │ ├── cmn_dict │ │ ├── cs_dict │ │ ├── cv_dict │ │ ├── cy_dict │ │ ├── da_dict │ │ ├── de_dict │ │ ├── el_dict │ │ ├── en_dict │ │ ├── eo_dict │ │ ├── es_dict │ │ ├── et_dict │ │ ├── eu_dict │ │ ├── fa_dict │ │ ├── fi_dict │ │ ├── fr_dict │ │ ├── ga_dict │ │ ├── gd_dict │ │ ├── gn_dict │ │ ├── grc_dict │ │ ├── gu_dict │ │ ├── hak_dict │ │ ├── haw_dict │ │ ├── he_dict │ │ ├── hi_dict │ │ ├── hr_dict │ │ ├── ht_dict │ │ ├── hu_dict │ │ ├── hy_dict │ │ ├── ia_dict │ │ ├── id_dict │ │ ├── intonations │ │ ├── io_dict │ │ ├── is_dict │ │ ├── it_dict │ │ ├── ja_dict │ │ ├── jbo_dict │ │ ├── ka_dict │ │ ├── kk_dict │ │ ├── kl_dict │ │ ├── kn_dict │ │ ├── ko_dict │ │ ├── kok_dict │ │ ├── ku_dict │ │ ├── ky_dict │ │ ├── la_dict │ │ ├── lang/ │ │ │ ├── aav/ │ │ │ │ ├── vi │ │ │ │ ├── vi-VN-x-central │ │ │ │ └── vi-VN-x-south │ │ │ ├── art/ │ │ │ │ ├── eo │ │ │ │ ├── ia │ │ │ │ ├── io │ │ │ │ ├── jbo │ │ │ │ ├── lfn │ │ │ │ ├── piqd │ │ │ │ ├── py │ │ │ │ ├── qdb │ │ │ │ ├── qya │ │ │ │ └── sjn │ │ │ ├── azc/ │ │ │ │ └── nci │ │ │ ├── bat/ │ │ │ │ ├── lt │ │ │ │ ├── ltg │ │ │ │ └── lv │ │ │ ├── bnt/ │ │ │ │ ├── sw │ │ │ │ └── tn │ │ │ ├── ccs/ │ │ │ │ └── ka │ │ │ ├── cel/ │ │ │ │ ├── cy │ │ │ │ ├── ga │ │ │ │ └── gd │ │ │ ├── cus/ │ │ │ │ └── om │ │ │ ├── dra/ │ │ │ │ ├── kn │ │ │ │ ├── ml │ │ │ │ ├── ta │ │ │ │ └── te │ │ │ ├── esx/ │ │ │ │ └── kl │ │ │ ├── eu │ │ │ ├── gmq/ │ │ │ │ ├── da │ │ │ │ ├── is │ │ │ │ ├── nb │ │ │ │ └── sv │ │ │ ├── gmw/ │ │ │ │ ├── af │ │ │ │ ├── de │ │ │ │ ├── en │ │ │ │ ├── en-029 │ │ │ │ ├── en-GB-scotland │ │ │ │ ├── en-GB-x-gbclan │ │ │ │ ├── en-GB-x-gbcwmd │ │ │ │ ├── en-GB-x-rp │ │ │ │ ├── en-US │ │ │ │ ├── en-US-nyc │ │ │ │ ├── lb │ │ │ │ └── nl │ │ │ ├── grk/ │ │ │ │ ├── el │ │ │ │ └── grc │ │ │ ├── inc/ │ │ │ │ ├── as │ │ │ │ ├── bn │ │ │ │ ├── bpy │ │ │ │ ├── gu │ │ │ │ ├── hi │ │ │ │ ├── kok │ │ │ │ ├── mr │ │ │ │ ├── ne │ │ │ │ ├── or │ │ │ │ ├── pa │ │ │ │ ├── sd │ │ │ │ ├── si │ │ │ │ └── ur │ │ │ ├── ine/ │ │ │ │ ├── hy │ │ │ │ ├── hyw │ │ │ │ └── sq │ │ │ ├── ira/ │ │ │ │ ├── fa │ │ │ │ ├── fa-Latn │ │ │ │ └── ku │ │ │ ├── iro/ │ │ │ │ └── chr │ │ │ ├── itc/ │ │ │ │ └── la │ │ │ ├── jpx/ │ │ │ │ └── ja │ │ │ ├── ko │ │ │ ├── map/ │ │ │ │ └── haw │ │ │ ├── miz/ │ │ │ │ └── mto │ │ │ ├── myn/ │ │ │ │ └── quc │ │ │ ├── poz/ │ │ │ │ ├── id │ │ │ │ ├── mi │ │ │ │ └── ms │ │ │ ├── qu │ │ │ ├── roa/ │ │ │ │ ├── an │ │ │ │ ├── ca │ │ │ │ ├── es │ │ │ │ ├── es-419 │ │ │ │ ├── fr │ │ │ │ ├── fr-BE │ │ │ │ ├── fr-CH │ │ │ │ ├── ht │ │ │ │ ├── it │ │ │ │ ├── pap │ │ │ │ ├── pt │ │ │ │ ├── pt-BR │ │ │ │ └── ro │ │ │ ├── sai/ │ │ │ │ └── gn │ │ │ ├── sem/ │ │ │ │ ├── am │ │ │ │ ├── ar │ │ │ │ ├── he │ │ │ │ └── mt │ │ │ ├── sit/ │ │ │ │ ├── cmn │ │ │ │ ├── cmn-Latn-pinyin │ │ │ │ ├── hak │ │ │ │ ├── my │ │ │ │ ├── yue │ │ │ │ └── yue-Latn-jyutping │ │ │ ├── tai/ │ │ │ │ ├── shn │ │ │ │ └── th │ │ │ ├── trk/ │ │ │ │ ├── az │ │ │ │ ├── ba │ │ │ │ ├── cv │ │ │ │ ├── kk │ │ │ │ ├── ky │ │ │ │ ├── nog │ │ │ │ ├── tk │ │ │ │ ├── tr │ │ │ │ ├── tt │ │ │ │ ├── ug │ │ │ │ └── uz │ │ │ ├── urj/ │ │ │ │ ├── et │ │ │ │ ├── fi │ │ │ │ ├── hu │ │ │ │ └── smj │ │ │ ├── zle/ │ │ │ │ ├── be │ │ │ │ ├── ru │ │ │ │ ├── ru-LV │ │ │ │ ├── ru-cl │ │ │ │ └── uk │ │ │ ├── zls/ │ │ │ │ ├── bg │ │ │ │ ├── bs │ │ │ │ ├── hr │ │ │ │ ├── mk │ │ │ │ ├── sl │ │ │ │ └── sr │ │ │ └── zlw/ │ │ │ ├── cs │ │ │ ├── pl │ │ │ └── sk │ │ ├── lb_dict │ │ ├── lfn_dict │ │ ├── lt_dict │ │ ├── lv_dict │ │ ├── mi_dict │ │ ├── mk_dict │ │ ├── ml_dict │ │ ├── mr_dict │ │ ├── ms_dict │ │ ├── mt_dict │ │ ├── mto_dict │ │ ├── my_dict │ │ ├── nci_dict │ │ ├── ne_dict │ │ ├── nl_dict │ │ ├── no_dict │ │ ├── nog_dict │ │ ├── om_dict │ │ ├── or_dict │ │ ├── pa_dict │ │ ├── pap_dict │ │ ├── phondata │ │ ├── phondata-manifest │ │ ├── phonindex │ │ ├── phontab │ │ ├── piqd_dict │ │ ├── pl_dict │ │ ├── pt_dict │ │ ├── py_dict │ │ ├── qdb_dict │ │ ├── qu_dict │ │ ├── quc_dict │ │ ├── qya_dict │ │ ├── ro_dict │ │ ├── ru_dict │ │ ├── sd_dict │ │ ├── shn_dict │ │ ├── si_dict │ │ ├── sjn_dict │ │ ├── sk_dict │ │ ├── sl_dict │ │ ├── smj_dict │ │ ├── sq_dict │ │ ├── sr_dict │ │ ├── sv_dict │ │ ├── sw_dict │ │ ├── ta_dict │ │ ├── te_dict │ │ ├── th_dict │ │ ├── tk_dict │ │ ├── tn_dict │ │ ├── tr_dict │ │ ├── tt_dict │ │ ├── ug_dict │ │ ├── uk_dict │ │ ├── ur_dict │ │ ├── uz_dict │ │ ├── vi_dict │ │ ├── voices/ │ │ │ └── !v/ │ │ │ ├── Alex │ │ │ ├── Alicia │ │ │ ├── Andrea │ │ │ ├── Andy │ │ │ ├── Annie │ │ │ ├── AnxiousAndy │ │ │ ├── Demonic │ │ │ ├── Denis │ │ │ ├── Diogo │ │ │ ├── Gene │ │ │ ├── Gene2 │ │ │ ├── Henrique │ │ │ ├── Hugo │ │ │ ├── Jacky │ │ │ ├── Lee │ │ │ ├── Marco │ │ │ ├── Mario │ │ │ ├── Michael │ │ │ ├── Mike │ │ │ ├── Mr serious │ │ │ ├── Nguyen │ │ │ ├── Reed │ │ │ ├── RicishayMax │ │ │ ├── RicishayMax2 │ │ │ ├── RicishayMax3 │ │ │ ├── Storm │ │ │ ├── Tweaky │ │ │ ├── UniRobot │ │ │ ├── adam │ │ │ ├── anika │ │ │ ├── anikaRobot │ │ │ ├── announcer │ │ │ ├── antonio │ │ │ ├── aunty │ │ │ ├── belinda │ │ │ ├── benjamin │ │ │ ├── boris │ │ │ ├── caleb │ │ │ ├── croak │ │ │ ├── david │ │ │ ├── ed │ │ │ ├── edward │ │ │ ├── edward2 │ │ │ ├── f1 │ │ │ ├── f2 │ │ │ ├── f3 │ │ │ ├── f4 │ │ │ ├── f5 │ │ │ ├── fast │ │ │ ├── grandma │ │ │ ├── grandpa │ │ │ ├── gustave │ │ │ ├── ian │ │ │ ├── iven │ │ │ ├── iven2 │ │ │ ├── iven3 │ │ │ ├── iven4 │ │ │ ├── john │ │ │ ├── kaukovalta │ │ │ ├── klatt │ │ │ ├── klatt2 │ │ │ ├── klatt3 │ │ │ ├── klatt4 │ │ │ ├── klatt5 │ │ │ ├── klatt6 │ │ │ ├── linda │ │ │ ├── m1 │ │ │ ├── m2 │ │ │ ├── m3 │ │ │ ├── m4 │ │ │ ├── m5 │ │ │ ├── m6 │ │ │ ├── m7 │ │ │ ├── m8 │ │ │ ├── marcelo │ │ │ ├── max │ │ │ ├── michel │ │ │ ├── miguel │ │ │ ├── mike2 │ │ │ ├── norbert │ │ │ ├── pablo │ │ │ ├── paul │ │ │ ├── pedro │ │ │ ├── quincy │ │ │ ├── rob │ │ │ ├── robert │ │ │ ├── robosoft │ │ │ ├── robosoft2 │ │ │ ├── robosoft3 │ │ │ ├── robosoft4 │ │ │ ├── robosoft5 │ │ │ ├── robosoft6 │ │ │ ├── robosoft7 │ │ │ ├── robosoft8 │ │ │ ├── sandro │ │ │ ├── shelby │ │ │ ├── steph │ │ │ ├── steph2 │ │ │ ├── steph3 │ │ │ ├── travis │ │ │ ├── victor │ │ │ ├── whisper │ │ │ ├── whisperf │ │ │ └── zac │ │ └── yue_dict │ ├── java/ │ │ └── com/ │ │ └── k2fsa/ │ │ └── sherpa/ │ │ └── onnx/ │ │ └── tts/ │ │ └── engine/ │ │ ├── CheckVoiceData.kt │ │ ├── Downloader.java │ │ ├── GetSampleText.kt │ │ ├── GithubStar.java │ │ ├── InstallVoiceData.kt │ │ ├── LangDB.java │ │ ├── Language.java │ │ ├── MainActivity.kt │ │ ├── ManageLanguagesActivity.kt │ │ ├── Migrate.java │ │ ├── PreferenceHelper.kt │ │ ├── ThemeUtil.java │ │ ├── TtsEngine.kt │ │ └── TtsService.kt │ └── res/ │ ├── drawable/ │ │ ├── ic_add_24dp.xml │ │ ├── ic_delete_24dp.xml │ │ ├── ic_launcher_foreground.xml │ │ ├── ic_launcher_foreground_monochrome.xml │ │ ├── ic_play_24dp.xml │ │ ├── ic_stop_24dp.xml │ │ ├── rounded_frame_thin.xml │ │ └── rounded_solid.xml │ ├── layout/ │ │ ├── activity_manage_languages.xml │ │ ├── dialog_install_custom_model.xml │ │ └── list_item.xml │ ├── mipmap-anydpi-v26/ │ │ └── ic_launcher.xml │ ├── values/ │ │ ├── arrays.xml │ │ ├── colors.xml │ │ ├── ic_launcher_background.xml │ │ ├── strings.xml │ │ └── themes.xml │ ├── values-cs/ │ │ └── strings.xml │ ├── values-de/ │ │ └── strings.xml │ ├── values-hu/ │ │ └── strings.xml │ ├── values-it/ │ │ └── strings.xml │ ├── values-pt-rBR/ │ │ └── strings.xml │ ├── values-ro/ │ │ └── strings.xml │ ├── values-ru/ │ │ └── strings.xml │ ├── values-tr/ │ │ └── strings.xml │ └── xml/ │ ├── data_extraction_rules.xml │ └── tts_engine.xml ├── build.gradle.kts ├── fastlane/ │ └── metadata/ │ └── android/ │ ├── cs-CZ/ │ │ ├── full_description.txt │ │ ├── short_description.txt │ │ └── title.txt │ ├── en-US/ │ │ ├── changelogs/ │ │ │ ├── 12.txt │ │ │ ├── 13.txt │ │ │ ├── 14.txt │ │ │ ├── 15.txt │ │ │ ├── 16.txt │ │ │ ├── 17.txt │ │ │ ├── 18.txt │ │ │ ├── 19.txt │ │ │ ├── 20.txt │ │ │ ├── 21.txt │ │ │ ├── 22.txt │ │ │ ├── 23.txt │ │ │ ├── 24.txt │ │ │ ├── 25.txt │ │ │ ├── 26.txt │ │ │ ├── 27.txt │ │ │ ├── 28.txt │ │ │ ├── 29.txt │ │ │ ├── 30.txt │ │ │ └── 31.txt │ │ ├── full_description.txt │ │ ├── short_description.txt │ │ └── title.txt │ ├── hu-HU/ │ │ ├── full_description.txt │ │ ├── short_description.txt │ │ └── title.txt │ ├── it-IT/ │ │ ├── full_description.txt │ │ ├── short_description.txt │ │ └── title.txt │ ├── pt-BR/ │ │ ├── full_description.txt │ │ └── short_description.txt │ ├── ro/ │ │ ├── full_description.txt │ │ ├── short_description.txt │ │ └── title.txt │ ├── ru-RU/ │ │ ├── full_description.txt │ │ ├── short_description.txt │ │ └── title.txt │ └── tr-TR/ │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── language.txt └── settings.gradle.kts
SYMBOL INDEX (39 symbols across 6 files)
FILE: app/src/main/java/com/k2fsa/sherpa/onnx/tts/engine/Downloader.java
class Downloader (line 19) | @SuppressWarnings("ResultOfMethodCallIgnored")
method downloadModels (line 30) | public static void downloadModels(final Activity activity, ActivityMan...
FILE: app/src/main/java/com/k2fsa/sherpa/onnx/tts/engine/GithubStar.java
class GithubStar (line 11) | public class GithubStar {
method setAskForStar (line 12) | public static void setAskForStar(boolean askForStar, Context context) {
method shouldShowStarDialog (line 19) | public static boolean shouldShowStarDialog(Context context) {
method starDialog (line 37) | public static void starDialog(Context context, String url) {
FILE: app/src/main/java/com/k2fsa/sherpa/onnx/tts/engine/LangDB.java
class LangDB (line 12) | public class LangDB extends SQLiteOpenHelper {
method LangDB (line 29) | public LangDB(Context context) {
method onCreate (line 34) | @Override
method onUpgrade (line 49) | @Override
method addLanguage (line 59) | public synchronized void addLanguage(String name, String lang, String ...
method clearAllEntries (line 74) | public synchronized void clearAllEntries() {
method getAllInstalledLanguages (line 81) | public synchronized List<Language> getAllInstalledLanguages() {
method updateLang (line 106) | public synchronized void updateLang(String lang, int sid, float speed,...
method getInstance (line 117) | public static LangDB getInstance(Context context) {
method removeLang (line 124) | public void removeLang(String language) {
FILE: app/src/main/java/com/k2fsa/sherpa/onnx/tts/engine/Language.java
class Language (line 3) | public class Language {
method Language (line 13) | public Language() {}
method getId (line 15) | public int getId() {
method setId (line 19) | public void setId(int id) {
method getName (line 23) | public String getName() {
method setName (line 27) | public void setName(String name) {
method setLang (line 31) | public void setLang(String lang) {this.lang = lang;}
method getLang (line 33) | public String getLang() {return lang;}
method setCountry (line 35) | public void setCountry(String country) {this.country = country;}
method getCountry (line 37) | public String getCountry() {return country;}
method setSid (line 39) | public void setSid(int sid) {this.sid = sid;}
method getSid (line 41) | public int getSid() {return sid;}
method setSpeed (line 43) | public void setSpeed(float speed) {this.speed = speed;}
method getSpeed (line 45) | public float getSpeed() {return speed;}
method setType (line 47) | public void setType(String type) {this.type = type;}
method getType (line 49) | public String getType() {return type;}
method setVolume (line 51) | public void setVolume(float volume) {this.volume = volume;}
method getVolume (line 53) | public float getVolume() {return this.volume;}
FILE: app/src/main/java/com/k2fsa/sherpa/onnx/tts/engine/Migrate.java
class Migrate (line 11) | public class Migrate {
method renameModelFolder (line 14) | public static void renameModelFolder(Context context){
method readLanguageFromFile (line 29) | public static String[] readLanguageFromFile(Context context) {
FILE: app/src/main/java/com/k2fsa/sherpa/onnx/tts/engine/ThemeUtil.java
class ThemeUtil (line 7) | public class ThemeUtil {
method setStatusBarAppearance (line 8) | public static void setStatusBarAppearance(Activity activity){
Condensed preview — 455 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (344K chars).
[
{
"path": ".gitignore",
"chars": 251,
"preview": "*.iml\n.gradle\n/local.properties\n./idea\n/.idea/caches\n/.idea/libraries\n/.idea/modules.xml\n/.idea/workspace.xml\n/.idea/nav"
},
{
"path": "LICENSE",
"chars": 35149,
"preview": " GNU GENERAL PUBLIC LICENSE\n Version 3, 29 June 2007\n\n Copyright (C) 2007 Free "
},
{
"path": "README.md",
"chars": 8085,
"preview": " ```\nGoogle has announced that, starting in 2026/2027, all apps on certified Android devices\nwill require the developer "
},
{
"path": "app/.gitignore",
"chars": 37,
"preview": "/build\n/release/output-metadata.json\n"
},
{
"path": "app/build.gradle.kts",
"chars": 2146,
"preview": "plugins {\n id(\"com.android.application\")\n id(\"org.jetbrains.kotlin.android\")\n}\n\nandroid {\n namespace = \"com.k2f"
},
{
"path": "app/proguard-rules.pro",
"chars": 750,
"preview": "# Add project specific ProGuard rules here.\n# You can control the set of applied configuration files using the\n# proguar"
},
{
"path": "app/src/main/AndroidManifest.xml",
"chars": 3079,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n xmlns:to"
},
{
"path": "app/src/main/assets/.gitkeep",
"chars": 0,
"preview": ""
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/aav/vi",
"chars": 111,
"preview": "name Vietnamese (Northern)\nlanguage vi\n\nwords 1 2\npitch 95 175\n\n\ntone 100 225 800 100 2000 50 5400 75 8000 200\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/aav/vi-VN-x-central",
"chars": 143,
"preview": "name Vietnamese (Central)\nlanguage vi-vn-x-central\nphonemes vi-hue\ndictrules 1\n\nwords 1\npitch 82 118 //80 118\n voicing"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/aav/vi-VN-x-south",
"chars": 142,
"preview": "name Vietnamese (Southern)\nlanguage vi-vn-x-south\nphonemes vi-sgn\ndictrules 2\n\nwords 1\npitch 82 118 //80 118\n voicing "
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/art/eo",
"chars": 41,
"preview": "name Esperanto\nlanguage eo\n\napostrophe 2\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/art/ia",
"chars": 29,
"preview": "name Interlingua\nlanguage ia\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/art/io",
"chars": 50,
"preview": "name Ido\nlanguage io\nphonemes eo\nstatus testing\n \n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/art/jbo",
"chars": 69,
"preview": "name Lojban\nlanguage jbo\n\nspeed 80 // speed adjustment, percentage\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/art/lfn",
"chars": 127,
"preview": "name Lingua Franca Nova\nlanguage lfn\n\nphonemes base2\nl_unpronouncable 0\nnumbers 2 3\n\nstressLength 150 140 180 180 0 0 2"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/art/piqd",
"chars": 56,
"preview": "name Klingon\nlanguage piqd\nstatus testing\nstressRule 3\n\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/art/py",
"chars": 140,
"preview": "name Pyash\nlanguage py\nmaintainer Logan Streondj <logan@liberit.ca>\nstatus testing\n\nspeed 80 // speed adjustment, perc"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/art/qdb",
"chars": 57,
"preview": "name Lang Belta\nlanguage qdb\n\nnumbers 4 3\n\nreplace 1 t ?\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/art/qya",
"chars": 173,
"preview": "name Quenya\nlanguage qya\nstressRule 2\n// rule=penultimate, with qya_rules for light penultimate syllables to move primar"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/art/sjn",
"chars": 175,
"preview": "name Sindarin\nlanguage sjn\nstressRule 2\n// rule=penultimate, with sjn_rules for light penultimate syllables to move prim"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/azc/nci",
"chars": 114,
"preview": "name Nahuatl (Classical)\nlanguage nci\n\nintonation 3\nstressRule 2\nstressLength 190 190 200 200 0 0 220 240\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/bat/lt",
"chars": 28,
"preview": "name Lithuanian\nlanguage lt\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/bat/ltg",
"chars": 312,
"preview": "name Latgalian\nlanguage ltg\nmaintainer Valdis Vitolins <valdis.vitolins@odo.lv>\nstatus testing\nphonemes lv\ndictionary lv"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/bat/lv",
"chars": 229,
"preview": "name Latvian\nlanguage lv\nmaintainer Valdis Vitolins <valdis.vitolins@odo.lv>\nstatus mature\nwords 0 2\npitch 67 123\ntone 6"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/bnt/sw",
"chars": 41,
"preview": "name Swahili\nlanguage sw\n\nstatus testing\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/bnt/tn",
"chars": 42,
"preview": "name Setswana\nlanguage tn\n\nstatus testing\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/ccs/ka",
"chars": 124,
"preview": "name Georgian\nlanguage ka\nlowercaseSentence\t// A period followed by a lowercase letter is considered a sentence (mkhedru"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/cel/cy",
"chars": 37,
"preview": "name Welsh\nlanguage cy\n\nintonation 4\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/cel/ga",
"chars": 66,
"preview": "name Gaelic (Irish)\nlanguage ga\n\ndictrules 1 // fix for eclipsis\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/cel/gd",
"chars": 51,
"preview": "name Gaelic (Scottish)\nlanguage gd\n\nstatus testing\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/cus/om",
"chars": 39,
"preview": "name Oromo\nlanguage om\n\nstatus testing\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/dra/kn",
"chars": 55,
"preview": "name Kannada\nlanguage kn\n\nintonation 2\n//consonants 80\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/dra/ml",
"chars": 57,
"preview": "name Malayalam\nlanguage ml\n\nintonation 2\n//consonants 80\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/dra/ta",
"chars": 51,
"preview": "name Tamil\nlanguage ta\n\nintonation 2\nconsonants 80\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/dra/te",
"chars": 70,
"preview": "name Telugu\nlanguage te\n\nstatus testing\n\nintonation 2\n//consonants 80\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/esx/kl",
"chars": 30,
"preview": "name Greenlandic\nlanguage kl\n\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/eu",
"chars": 54,
"preview": "name Basque\nlanguage eu\n\nstatus testing\nstressRule 15\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/gmq/da",
"chars": 43,
"preview": "name Danish\nlanguage da\n\ntunes s2 c2 q2 e2\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/gmq/is",
"chars": 27,
"preview": "name Icelandic\nlanguage is\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/gmq/nb",
"chars": 86,
"preview": "name Norwegian Bokmål\nlanguage nb\nlanguage no\nphonemes no\ndictionary no\n\nintonation 4\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/gmq/sv",
"chars": 25,
"preview": "name Swedish\nlanguage sv\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/gmw/af",
"chars": 123,
"preview": "name Afrikaans\nlanguage af\n\nmaintainer Christo de Klerk <christodeklerk@gmail.com>\nstatus mature\n\nroughness 0\npitch 63 1"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/gmw/de",
"chars": 42,
"preview": "name German\nlanguage de\ntunes s4 c1 q4 e1\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/gmw/en",
"chars": 140,
"preview": "name English (Great Britain)\nlanguage en-gb 2\nlanguage en 2\n\nmaintainer Reece H. Dunn <msclrhd@gmail.com>\nstatus mature"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/gmw/en-029",
"chars": 335,
"preview": "name English (Caribbean)\nlanguage en-029\nlanguage en 10\n\nmaintainer Reece H. Dunn <msclrhd@gmail.com>\nstatus mature\n\npho"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/gmw/en-GB-scotland",
"chars": 295,
"preview": "name English (Scotland)\nlanguage en-gb-scotland\nlanguage en 4\n\nmaintainer Reece H. Dunn <msclrhd@gmail.com>\nstatus matur"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/gmw/en-GB-x-gbclan",
"chars": 238,
"preview": "name English (Lancaster)\nlanguage en-gb-x-gbclan\nlanguage en-gb 3\nlanguage en 5\n\nmaintainer Reece H. Dunn <msclrhd@gmai"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/gmw/en-GB-x-gbcwmd",
"chars": 188,
"preview": "name English (West Midlands)\nlanguage en-gb-x-gbcwmd\nlanguage en-gb 9\nlanguage en 9\n\nphonemes en-wm\n\nreplace 00 h NULL\nr"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/gmw/en-GB-x-rp",
"chars": 249,
"preview": "name English (Received Pronunciation)\nlanguage en-gb-x-rp\nlanguage en-gb 4\nlanguage en 5\n\nmaintainer Reece H. Dunn <msc"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/gmw/en-US",
"chars": 257,
"preview": "name English (America)\nlanguage en-us 2\nlanguage en 3\n\nmaintainer Reece H. Dunn <msclrhd@gmail.com>\nstatus mature\n\nphone"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/gmw/en-US-nyc",
"chars": 271,
"preview": "name English (America, New York City)\nlanguage en-us-nyc\n\nmaintainer Richard Calvi <richard.calvi@gmail.com>\nstatus test"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/gmw/lb",
"chars": 31,
"preview": "name Luxembourgish\nlanguage lb\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/gmw/nl",
"chars": 23,
"preview": "name Dutch\nlanguage nl\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/grk/el",
"chars": 23,
"preview": "name Greek\nlanguage el\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/grk/grc",
"chars": 99,
"preview": "name Greek (Ancient)\nlanguage grc\n\nstressLength 170 170 190 190 0 0 230 240\ndictrules 1\nwords 3\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/inc/as",
"chars": 42,
"preview": "name Assamese\nlanguage as\n\nstatus testing\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/inc/bn",
"chars": 25,
"preview": "name Bengali\nlanguage bn\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/inc/bpy",
"chars": 39,
"preview": "name Bishnupriya Manipuri\nlanguage bpy\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/inc/gu",
"chars": 42,
"preview": "name Gujarati\nlanguage gu\n\nstatus testing\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/inc/hi",
"chars": 23,
"preview": "name Hindi\nlanguage hi\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/inc/kok",
"chars": 26,
"preview": "name Konkani\nlanguage kok\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/inc/mr",
"chars": 41,
"preview": "name Marathi\nlanguage mr\n\nstatus testing\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/inc/ne",
"chars": 37,
"preview": "name Nepali\nlanguage ne\n\ndictrules 1\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/inc/or",
"chars": 39,
"preview": "name Oriya\nlanguage or\n\nstatus testing\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/inc/pa",
"chars": 25,
"preview": "name Punjabi\nlanguage pa\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/inc/sd",
"chars": 66,
"preview": "name Sindhi\nlanguage sd\nmaintainer Ejaz Shah <eashah67@gmail.com>\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/inc/si",
"chars": 55,
"preview": "name Sinhala\nlanguage si\n\nstatus testing\n\nintonation 2\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/inc/ur",
"chars": 94,
"preview": "name Urdu\nlanguage ur\nmaintainer Ejaz Shah <eashah67@gmail.com>\nstatus testing\n\nstressRule 6\n\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/ine/hy",
"chars": 61,
"preview": "name Armenian (East Armenia)\nlanguage hy\nlanguage hy-arevela\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/ine/hyw",
"chars": 365,
"preview": "name Armenian (West Armenia)\nlanguage hyw\nlanguage hy-arevmda\nlanguage hy 8\n\ndictionary hy\ndictrules 1\n\nphonemes hy\n\n//"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/ine/sq",
"chars": 102,
"preview": "name Albanian\nlanguage sq\n\n// add this line to remove 'ë' at the end of words\n// replace 00 @/ NULL\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/ira/fa",
"chars": 90,
"preview": "name Persian\nlanguage fa\nmaintainer Shadyar Khodayari <shadyar81@gmail.com>\nstatus mature\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/ira/fa-Latn",
"chars": 269,
"preview": "name Persian (Pinglish)\n// Sometimes, Farsi speakers write Farsi words using English characters, particularly in Chat an"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/ira/ku",
"chars": 40,
"preview": "name Kurdish\nlanguage ku\n\n//words 1 48\n\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/iro/chr",
"chars": 569,
"preview": "name Cherokee //https://github.com/espeak-ng/espeak-ng/blob/master/docs/voices.md\nlanguage chr-US-Qaaa-x-west 5\n\nmaintai"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/itc/la",
"chars": 297,
"preview": "name Latin\nlanguage la\nstressRule 2 0 2\n// rule=penultimate\n// unstressed_wd1=0\n// unstressed_wd2=2\nstressOpt 0 5 // fla"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/jpx/ja",
"chars": 52,
"preview": "name Japanese\nlanguage ja\nphonemes ja\n\nintonation 4\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/ko",
"chars": 51,
"preview": "name Korean\nlanguage ko\npitch 80 118\nintonation 2\n\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/map/haw",
"chars": 42,
"preview": "name Hawaiian\nlanguage haw\nstatus testing\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/miz/mto",
"chars": 183,
"preview": "name Totontepec Mixe\nlanguage mto\n\nmaintainer Bill Dengler <codeofdusk@gmail.com> and Elizabeth Resendiz <e.r.resendiz7@"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/myn/quc",
"chars": 210,
"preview": "name K'iche'\nlanguage quc\nstatus testing\nstressRule 3 // stress on final syllable\nstressAmp 8 8 20 15 0 0 25 25 // redu"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/poz/id",
"chars": 134,
"preview": "name Indonesian\nlanguage id\n\nstressLength 160 200 180 180 0 0 220 240\nstressAmp 16 18 18 18 0 0 22 21\n\ncon"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/poz/mi",
"chars": 366,
"preview": "name Māori\nlanguage mi\nstatus testing\n\n// https://github.com/espeak-ng/espeak-ng/blob/master/docs/voices.md#words\nwords "
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/poz/ms",
"chars": 430,
"preview": "// Last updated: 14 October 2010, Jason Ong (jason@portalgroove.com)\nname Malay\nlanguage ms\nphonemes id\n\nstressLength 16"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/qu",
"chars": 88,
"preview": "name Quechua\nlanguage qu\nstressRule 2 // stress on penultimate syllable\nstatus testing\n\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/roa/an",
"chars": 27,
"preview": "name Aragonese\nlanguage an\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/roa/ca",
"chars": 25,
"preview": "name Catalan\nlanguage ca\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/roa/es",
"chars": 63,
"preview": "name Spanish (Spain)\nlanguage es\ndictrules 1\ntunes s6 c6 q6 e6\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/roa/es-419",
"chars": 167,
"preview": "name Spanish (Latin America)\nlanguage es-419\nlanguage es-mx 6\n\nphonemes es-la\ndictrules 2\nintonation 2\nstressLength 170 "
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/roa/fr",
"chars": 79,
"preview": "name French (France)\nlanguage fr-fr\nlanguage fr\n\ndictrules 1\ntunes s3 c3 q3 e3\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/roa/fr-BE",
"chars": 84,
"preview": "name French (Belgium)\nlanguage fr-be\nlanguage fr 8\n\ndictrules 2\ntunes s3 c3 q3 e3\n\n\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/roa/fr-CH",
"chars": 86,
"preview": "name French (Switzerland)\nlanguage fr-ch\nlanguage fr 8\n\ndictrules 3\ntunes s3 c3 q3 e3\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/roa/ht",
"chars": 140,
"preview": "name Haitian Creole\nlanguage ht\nstatus testing\nmaintainer // TODO somebody should take responsibility for this\n\nphoneme"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/roa/it",
"chars": 109,
"preview": "name Italian\nlanguage it\n\nmaintainer Christian Leo M <llajta2012@gmail.com>\nstatus mature\n\ntunes s4 c4 q4 e4\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/roa/pap",
"chars": 62,
"preview": "name Papiamento\nlanguage pap\n\nstatus testing\n\nphonemes base2\n\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/roa/pt",
"chars": 95,
"preview": "name Portuguese (Portugal)\nlanguage pt\nlanguage pt-pt\nphonemes pt-pt\n\ndictrules 1\nintonation 2\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/roa/pt-BR",
"chars": 109,
"preview": "name Portuguese (Brazil)\nlanguage pt-br\nlanguage pt 6\n\ndictrules 2\nstressLength 200 115 230 230 0 0 250 270\n\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/roa/ro",
"chars": 26,
"preview": "name Romanian\nlanguage ro\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/sai/gn",
"chars": 47,
"preview": "name Guarani\nlanguage gn\ndictrules 1\nwords 0 1\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/sem/am",
"chars": 41,
"preview": "name Amharic\nlanguage am\n\nstatus testing\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/sem/ar",
"chars": 50,
"preview": "name Arabic\nlanguage ar\nphonemes ar\n\nstressRule 4\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/sem/he",
"chars": 40,
"preview": "name Hebrew\nlanguage he\n\nstatus testing\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/sem/mt",
"chars": 41,
"preview": "name Maltese\nlanguage mt\n\nstatus testing\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/sit/cmn",
"chars": 592,
"preview": "name Chinese (Mandarin, latin as English)\nlanguage cmn\nlanguage zh-cmn\nlanguage zh\n\nphonemes cmn\ndictionary cmn\nwords 1\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/sit/cmn-Latn-pinyin",
"chars": 161,
"preview": "name Chinese (Mandarin, latin as Pinyin)\nlanguage cmn-latn-pinyin\nlanguage zh-cmn\nlanguage zh\n\nphonemes cmn\ndictionary c"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/sit/hak",
"chars": 128,
"preview": "name Hakka Chinese\nlanguage hak\nmaintainer Chen Chien-ting <yoxem.tem98@nctu.edu.tw>\nstatus testing\nphonemes hak\ndiction"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/sit/my",
"chars": 56,
"preview": "name Myanmar (Burmese)\nmaintainer Min Maung\nlanguage my\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/sit/yue",
"chars": 194,
"preview": "name Chinese (Cantonese)\nlanguage yue\nlanguage zh-yue\nlanguage zh 8\n\nphonemes yue\ndictionary yue\n\n// interpret English l"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/sit/yue-Latn-jyutping",
"chars": 213,
"preview": "name Chinese (Cantonese, latin as Jyutping)\nlanguage yue\nlanguage zh-yue\nlanguage zh 8\n\nphonemes yue\ndictionary yue\n\n// "
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/tai/shn",
"chars": 92,
"preview": "name Shan (Tai Yai)\nlanguage shn\nmaintainer ronaldaug <contact@ronaldaug.ml>\nstatus testing\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/tai/th",
"chars": 37,
"preview": "name Thai\nlanguage th\nstatus testing\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/trk/az",
"chars": 45,
"preview": "name Azerbaijani\nlanguage az\n\nstatus testing\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/trk/ba",
"chars": 25,
"preview": "name Bashkir\nlanguage ba\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/trk/cv",
"chars": 40,
"preview": "name Chuvash\nlanguage cv\nstatus testing\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/trk/kk",
"chars": 40,
"preview": "name Kazakh\nlanguage kk\nstatus testing\n\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/trk/ky",
"chars": 43,
"preview": "name Kyrgyz\nlanguage ky\n\ntunes s3 c3 q3 e3\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/trk/nog",
"chars": 39,
"preview": "name Nogai\nlanguage nog\nstatus testing\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/trk/tk",
"chars": 25,
"preview": "name Turkmen\nlanguage tk\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/trk/tr",
"chars": 25,
"preview": "name Turkish\nlanguage tr\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/trk/tt",
"chars": 23,
"preview": "name Tatar\nlanguage tt\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/trk/ug",
"chars": 24,
"preview": "name Uyghur\nlanguage ug\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/trk/uz",
"chars": 39,
"preview": "name Uzbek\nlanguage uz\n\nstatus testing\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/urj/et",
"chars": 237,
"preview": "name Estonian\nlanguage et\n\nstressAmp 18 16 22 22 20 22 22 22\nstressLength 150 180 200 200 0 0 210 250\nstressOpt 1 2 4 6 "
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/urj/fi",
"chars": 237,
"preview": "name Finnish\nlanguage fi\n\n\nstressAmp 18 16 22 22 20 22 22 22\nstressLength 150 180 200 200 0 0 210 250\nstressOpt 1 2 4 6 "
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/urj/hu",
"chars": 73,
"preview": "name Hungarian\nlanguage hu\nbrackets 0\nbracketsAnnounced 0\npitch 81 117\n\n\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/urj/smj",
"chars": 45,
"preview": "name Lule Saami\nlanguage smj\n\nstatus testing\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/zle/be",
"chars": 52,
"preview": "name Belarusian\nlanguage be\ndict_min 2000\nspeed 95\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/zle/ru",
"chars": 57,
"preview": "name Russian\nlanguage ru\nreplace 03 a a#\ndict_min 20000\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/zle/ru-LV",
"chars": 280,
"preview": "name Russian (Latvia)\nlanguage ru-lv 2\n\nmaintainer Valdis Vitolins <valdis.vitolins@odo.lv>\nstatus testing\n\nphonemes ru-"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/zle/ru-cl",
"chars": 91,
"preview": "name Russian (Classic)\nlanguage ru-cl\nreplace 03 a a#\ndict_min 20000\nspeed 95\ndictrules 3\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/zle/uk",
"chars": 97,
"preview": "name Ukrainian\nlanguage uk\n\nmaintainer Andrij Mizyk <andm1zyk@proton.me>\nstatus testing\n\nspeed 80"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/zls/bg",
"chars": 111,
"preview": "name Bulgarian\nlanguage bg\n\nstressAmp 13 12 17 17 20 22 22 21 \nstressLength 180 170 200 200 200 200 210 220\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/zls/bs",
"chars": 230,
"preview": "name Bosnian\nlanguage bs\nphonemes hr\n\npitch 81 120\nformant 0 100 100 100\nformant 1 97 97 100\nformant 2 97 97 100\nfor"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/zls/hr",
"chars": 262,
"preview": "name Croatian\nlanguage hr\nlanguage hbs\n\n// attributes towards !variant3\npitch 81 120\nformant 0 100 100 100\nformant 1 97"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/zls/mk",
"chars": 28,
"preview": "name Macedonian\nlanguage mk\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/zls/sl",
"chars": 43,
"preview": "name Slovenian\nlanguage sl\n\nstatus testing\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/zls/sr",
"chars": 250,
"preview": "name Serbian\nlanguage sr\n\n// attributes towards !variant3 pitch 80 120\nformant 0 100 100 100\nformant 1 97 97 100\nforma"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/zlw/cs",
"chars": 23,
"preview": "name Czech\nlanguage cs\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/zlw/pl",
"chars": 38,
"preview": "name Polish\nlanguage pl\n\nintonation 2\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/lang/zlw/sk",
"chars": 24,
"preview": "name Slovak\nlanguage sk\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/phondata-manifest",
"chars": 21821,
"preview": "# This file lists the type of data that has been compiled into the\n# phondata file\n#\n# The first character of a line ind"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/Alex",
"chars": 128,
"preview": "language variant\nname Alex\n\nvoicing 70\npitch 105 115\nflutter 0\n\nformant 1 110 115 100\nformant 2 100 110 100\nformant 3 10"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/Alicia",
"chars": 453,
"preview": "language variant\nname Alicia\ngender female\npitch 180 275\necho 40 50\nformant 0 115 115 110\nformant 1 130 160 120\nformant "
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/Andrea",
"chars": 357,
"preview": "language variant \nname Andrea\ngender female \n\npitch 200 265\nroughness 0\n\nformant 0 100 100 100\nformant 1 110 100 80\nfo"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/Andy",
"chars": 301,
"preview": "language variant\nname Andy\ngender Male\n\npitch 85 110\n\nflutter 0\nformant 0 80 80 80 80\nformant 1 100 100 100 120\nformant "
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/Annie",
"chars": 298,
"preview": "language variant\nname Annie\ngender female\npitch 120 280\n\nformant 0 105 125 120\nformant 1 120 140 120\nformant 2 120 150 1"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/AnxiousAndy",
"chars": 342,
"preview": "language variant\nname anxiousAndy\ngender Male\n\npitch 115 110\n\nflutter 0\nformant 0 80 80 80 80\nformant 1 100 100 100 120\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/Demonic",
"chars": 3726,
"preview": "##Ten en cuenta que los 2 signos de número en este archivo tienen explicaciones de las comfiguraciones que puede aplicar"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/Denis",
"chars": 286,
"preview": "language variant\nname Denis\ngender male 35\npitch 80 115\nflutter 0\nroughness 0\n\n\nformant 0 100 160 160\nformant 1 95 95 9"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/Diogo",
"chars": 379,
"preview": "language variant\nname Diogo\ngender male 25\npitch 82 122\necho 0 0\nflutter 0\nroughness 0\nstressAmp 20 18 20 20 20 22 2"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/Gene",
"chars": 264,
"preview": "language variant\nname Gene\n\npitch 80 110\n\nformant 0 120 120 120\nformant 1 90 100 110\nformant 2 100 100 95\nformant 3 90 "
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/Gene2",
"chars": 266,
"preview": "language variant\nname Gene2\n\npitch 100 130\n\nformant 0 120 120 120\nformant 1 90 100 110\nformant 2 100 100 95\nformant 3 9"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/Henrique",
"chars": 381,
"preview": "language variant\nname Henrique\ngender male 25\npitch 70 130\necho 0 0\nflutter 0\nroughness 0\nstressAmp 20 18 20 20 20 22"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/Hugo",
"chars": 378,
"preview": "language variant\nname Hugo\ngender male 25\npitch 70 130\necho 0 0\nflutter 0\nroughness 0\nstressAmp 20 18 20 20 20 22 22"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/Jacky",
"chars": 250,
"preview": "language variant\nname Jacky\n\npitch 85 130\n\nformant 0 150 155 100\nformant 1 90 155 70\nformant 2 95 70 64\nformant 3 15 20"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/Lee",
"chars": 318,
"preview": "language variant\nname Lee\ngender Male\n\n#echo 230 30\npitch 85 110\n\nflutter 0\nformant 0 80 80 80 80\nformant 1 80 80 100 10"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/Marco",
"chars": 444,
"preview": "language variant\nname Marco\ngender male 30\nintonation 1\npitch 100 152\necho 50 80\nflutter 2\nroughness 0\nstressAmp 25 25 "
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/Mario",
"chars": 253,
"preview": "language variant\nname Mario\n\npitch 75 125\n\nformant 0 100 111 95\nformant 1 100 111 60\nformant 2 95 90 55\nformant 3 100 5"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/Michael",
"chars": 253,
"preview": "language variant\nname Michael\n\npitch 75 125\n\nformant 0 105 111 95\nformant 1 85 111 60\nformant 2 95 90 55\nformant 3 59 5"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/Mike",
"chars": 112,
"preview": "language variant\nname Mike\nvoicing 70\nformant 1 96 97 100\nformant 2 96 97 100\nformant 5 95 103 100\npitch 67 107\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/Mr serious",
"chars": 3143,
"preview": "##Please note the 2 number signs, or pound signs in this file are for comments to help you to understand what the settin"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/Nguyen",
"chars": 280,
"preview": "language variant\nname Nguyen\n\npitch 95 175\n\nformant 0 100 125 100\nformant 1 96 90 80\nformant 2 97 70 90\nformant 3 97 60 "
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/Reed",
"chars": 202,
"preview": "language variant\nname Reed\nklatt 6\nconsonants 85 85\nvoicing 130\nbreath 45\n\npitch 85 135\n\nformant 1 72 100 90 90\nformant "
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/RicishayMax",
"chars": 233,
"preview": "language variant\nname RicishayMax\necho 100 10000\n\nformant 0 90 120 100\nformant 1 100 100 75\nformant 2 100 100 75\nformant"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/RicishayMax2",
"chars": 435,
"preview": "language variant\nname RicishayMax2\necho 150 500\n\nformant 0 90 120 100\nformant 1 100 100 75\nformant 2 100 100 75\nformant "
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/RicishayMax3",
"chars": 435,
"preview": "language variant\nname RicishayMax3\necho 200 500\n\nformant 0 90 120 100\nformant 1 100 100 75\nformant 2 100 100 75\nformant "
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/Storm",
"chars": 397,
"preview": "language variant\nlanguage en-us\nname Storm\ngender male\nformant 0 100 100 100\nformant 1 95 95 95\nformant 2 95 95 95\nforma"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/Tweaky",
"chars": 3139,
"preview": "##Please note the 2 number signs, or pound signs in this file are for comments to help you to understand what the settin"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/UniRobot",
"chars": 398,
"preview": "language variant\nname UniversalRobot\ngender male\nklatt 4\npitch 100 160\necho 10 10000\nformant 1 75 120 135\nformant 2 90 "
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/adam",
"chars": 75,
"preview": "language variant\nname Adam\nklatt 6\nconsonants 85 85\n\nformant 1 100 100 130\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/anika",
"chars": 493,
"preview": "language variant\nname anika\ngender female\npitch 200 300\nflutter 6\nstressAmp 20 18 20 20 20 22 22 22\n\nroughness 0\n\nfor"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/anikaRobot",
"chars": 512,
"preview": "language variant\nname anikaRobot\ngender female\npitch 200 300\nflutter 1\nstressAmp 20 18 20 20 20 22 22 22\necho 10 1000"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/announcer",
"chars": 300,
"preview": "name Half-LifeAnnouncementSystem\nlanguage variant\npitch 37 83\nklatt 4\n\nformant 1 88 100 100 0\nformant 2 96 100 100 0\nfor"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/antonio",
"chars": 381,
"preview": "language variant \nname Antonio\ngender male\n\npitch 82 128\nroughness 0\n\nformant 0 100 150 90\nformant 1 90 130 90\nformant"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/aunty",
"chars": 339,
"preview": "language variant\nname Auntie\ngender female\npitch 204 176\nflutter 12\n\nformant 0 88 85 154\nformant 1 115 80 160 -20\nforman"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/belinda",
"chars": 340,
"preview": "language variant\nname Belinda\ngender female\n\npitch 200 247 \nflutter 3\n\nformant 0 88 85 154\nformant 1 135 58 169 -30\nfor"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/benjamin",
"chars": 201,
"preview": "language variant\nname Benjamin\nklatt 6\nconsonants 70 70\n\nformant 1 101 100 130\nformant 2 102 100 100\nformant 3 100 100 1"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/boris",
"chars": 209,
"preview": "language variant\nname Boris\n\nformant 0 47 120 100\nformant 1 100 90 75\nformant 2 104 100 75\nformant 3 57 80 75\nformant 4 "
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/caleb",
"chars": 57,
"preview": "language variant\nname Caleb\nklatt 6\nbreath 100\nvoicing 0\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/croak",
"chars": 93,
"preview": "language variant\nname croak\ngender male 70\n\npitch 85 117\nflutter 20\n\nformant 0 100 80 110\n\n\n\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/david",
"chars": 112,
"preview": "language variant\nname David\nklatt 6\npitch 62 89\n\nformant 1 75 100 100\nformant 2 85 100 100\nformant 3 85 100 100\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/ed",
"chars": 287,
"preview": "language variant\nname Ed\n\npitch 90 145\n\nformant 0 110 120 200 5\nformant 1 102 100 80\nformant 2 101 120 100\nformant 3 100"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/edward",
"chars": 151,
"preview": "language variant\nname Edward\nklatt 5\nvoicing 100\nconsonants 70 80\n\nformant 1 92 100 130\nformant 2 103 100 80\nformant 3 1"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/edward2",
"chars": 152,
"preview": "language variant\nname Edward2\nklatt 6\nvoicing 100\nconsonants 70 80\n\nformant 1 92 100 130\nformant 2 103 100 80\nformant 3 "
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/f1",
"chars": 324,
"preview": "language variant\nname female1\ngender female 70\n\npitch 140 200\nflutter 8\nroughness 4\nformant 0 115 80 150\nformant 1 120 "
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/f2",
"chars": 357,
"preview": "language variant\nname female2\ngender female\n\npitch 142 220\nroughness 3\n\nformant 0 105 80 150\nformant 1 110 80 160\nform"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/f3",
"chars": 375,
"preview": "language variant\nname female3\ngender female\n\npitch 140 240\nformant 0 105 80 150\nformant 1 120 75 150 -50\nformant 2 135"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/f4",
"chars": 350,
"preview": "language variant\nname female4\ngender female\n\necho 130 15\npitch 142 200\nformant 0 120 80 150\nformant 1 115 80 160 -20\nf"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/f5",
"chars": 432,
"preview": "language variant \nname female5\ngender female \n\npitch 160 228\nroughness 0\n\nformant 0 105 80 150 \nformant 1 110 80 160 \n"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/fast",
"chars": 149,
"preview": "language variant\nname fast_test\n\n// Try decreasing these values to make eSpeak's fastest speed faster.\n// This is curren"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/grandma",
"chars": 263,
"preview": "language variant\n\nname grandma\ngender female 90\npitch 120 230\n\nflutter 20\nformant 0 105 150 150\nformant 1 100 80 100\nfor"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/grandpa",
"chars": 256,
"preview": "language variant\nname grandpa\npitch 80 120\nflutter 20\nformant 0 100 100 100\nformant 1 100 100 100\nformant 2 100 100 100\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/gustave",
"chars": 253,
"preview": "language variant\nname Gustave\n\npitch 80 123\n\nformant 0 85 141 135\nformant 1 77 131 45\nformant 2 92 70 55\nformant 3 59 5"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/ian",
"chars": 3117,
"preview": "##Please note the 2 number signs, or pound signs in this file are for comments to help you to understand what the settin"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/iven",
"chars": 261,
"preview": "language variant\nname Iven\npitch 74 118\nformant 0 52 133 88\nformant 1 87 82 76\nformant 2 94 56 42\nformant 3 93 52 130\nf"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/iven2",
"chars": 279,
"preview": "language variant\nname Iven2\npitch 74 118\nformant 0 52 133 88\nformant 1 87 82 76\nformant 2 94 56 42\nformant 3 93 52 130\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/iven3",
"chars": 262,
"preview": "language variant\nname Iven3\npitch 74 118\nformant 0 52 133 88\nformant 1 87 82 76\nformant 2 94 56 42\nformant 3 93 52 130\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/iven4",
"chars": 261,
"preview": "language variant\nname Iven4\npitch 74 118\nformant 0 52 133 88\nformant 1 87 82 76\nformant 2 94 56 42\nformant 3 93 52 130\n"
},
{
"path": "app/src/main/assets/espeak-ng-data/voices/!v/john",
"chars": 3136,
"preview": "##Please note the 2 number signs, or pound signs in this file are for comments to help you to understand what the settin"
}
]
// ... and 255 more files (download for full content)
About this extraction
This page contains the full source code of the woheller69/ttsEngine GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 455 files (297.8 KB), approximately 116.0k tokens, and a symbol index with 39 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.