summaryrefslogtreecommitdiff
path: root/chromium/docs/accessibility/patts.md
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/docs/accessibility/patts.md')
-rw-r--r--chromium/docs/accessibility/patts.md112
1 files changed, 112 insertions, 0 deletions
diff --git a/chromium/docs/accessibility/patts.md b/chromium/docs/accessibility/patts.md
new file mode 100644
index 00000000000..7d67ee8580b
--- /dev/null
+++ b/chromium/docs/accessibility/patts.md
@@ -0,0 +1,112 @@
+# The Chrome OS PATTS speech synthesis engine
+
+Chrome OS comes with a speech synthesis engine developed internally at Google
+called PATTS. It's based on the same engine that ships with all Android devices.
+
+## Building from source
+
+This is for Googlers only.
+
+Visit [http://go/chrome-tts-blaze](http://go/chrome-tts-blaze)
+for instructions on how to build the engine from source and get the
+latest voice files.
+
+When debugging, start Chrome from the command-line and set the
+NACL_PLUGIN_DEBUG environment variable to 1 to print log messages to stdout.
+
+## Updating
+
+First, follow the public
+[Chromium OS Developer Guide](http://www.chromium.org/chromium-os/developer-guide) to check out the source.
+At a minimum you'll need to create a chroot.
+You do not need to build everything from source.
+You do need to start the devserver.
+
+Next, flash your device to a very recent test build. Internally at Google
+you can do this with the following command when the dev server is running,
+where CHROMEBOOK_IP_ADDRESS is the IP address of your Chromebook already
+in developer mode, and $BOARD is your Chromebook's board name.
+
+```cros flash ssh://CHROMEBOOK_IP_ADDRESS xbuddy://remote/$BOARD/latest-dev/test```
+
+Before you can make changes to PATTS, the first thing you need to run
+(from the chroot) is call cros_workon with two relevant ebuilds:
+
+```
+cros_workon --board=$BOARD start chromiumos-assets
+cros_workon --board=$BOARD start common-assets
+```
+
+From outside the root, from anywhere under your top-level ```<repo-dir>```, pull down the relevant sources:
+
+```
+repo sync
+```
+
+Again, outside the root, make sure you're in the ```<repo-dir>/src/platform/assets``` directory and run
+```repo start``` to create a branch:
+
+```
+cd src/platform/assets
+repo start <branch_name> .
+```
+
+
+The PATTS data files can be found in this directory:
+
+```src/platform/assets/speech_synthesis/patts```
+
+When updating the files, the native client files (nexe) need to be zipped.
+
+Replace all of the files you need to update, commit them using git,
+then from the chroot, run:
+
+```
+emerge-$BOARD common-assets
+cros deploy CHROMEBOOK_IP_ADDRESS common-assets
+```
+
+Note that you need to call cros_workon on both chromeos-assets and
+common-assets. You will be changing files in chromeos-assets, but
+to flash it onto your device, you need to emerge and deploy
+common-assets.
+
+After that, reboot your Chromebook and verify that speech works.
+
+To upload the change, use repo upload, something like this:
+
+```
+git commit -a
+ BUG=chromium:12345
+ TEST=Write what you tested here
+repo upload .
+```
+
+## Ebuild
+
+Note that sometimes you'll have to update the ebuild file that
+takes the patts data files and installs them, unzipping the .nexe
+files in the process.
+
+For example, you'll need to edit the ebuild if you add or remove
+a language code, or if you add or remove a file that needs to be
+installed as part of the extension.
+
+To update the ebuild, edit this file:
+
+```
+/third_party/chromiumos-overlay/chromeos-base/common-assets/common-assets-9999.ebuild
+```
+
+If you need to land changes to both common-assets and chromiumos-assets,
+upload the changes separately and then make them depend on one another
+using this syntax in the changelog:
+
+```
+CQ-DEPEND=CL:12345
+```
+
+Note that you can (and often should) have two changes depend on one another
+so they'll land atomically.
+
+