Yuet - Tiny Cantonese TTS engine

Cantonese speech synthesis engine for offline embedded system.


  1. *Accuracy, high precision, accurate Chinese word segmentation based on natural language understanding, accurate pronunciation of the variants of character pronunciation in different words with text contextual analysis.
  2. Naturalness, tone changes with prosody conversion, appropriate breaks for words in long sentences, and emphasis on the correct words. High naturalness of synthesised speech for mixed text input, the mixed content can be any Chinese, English, number, symbols and all other possible characters defined in Unicode 8.0, it was compatible with HKSCS-2004 (Big5, ISO 10646). The default encoding of text is UTF-8.
  3. Intelligent, detect unknown words (unknown names of things, place, person and organisation etc) intelligently, handle all kinds of Chinese punctuations. Artificial intelligence for the pronunciation of "Chinese Number String" to translated "Chinese Readings", such as date time, price, units of measure, phone number, post code, money symbols, license plate, brand name, product model, etc.
  4. Tiny, small memory footprint and storage, extremely small computing resource required. The precompiled binary (library, .dll, .so, .a) is about 200Kb and plus the compressed data, data + program binary <4MB, extremely small space occupied.
  5. Offline, platform independent, PCM audio output don't require a server or network connection. In-memory output or Wav format file will be produced by default.
  6. Self-contained, instant, high speed, handle any length of text, the category of the text can be in any field, any industry, the engine is based on natural language processing, no require of any external dictionary or corpus. The compressed database can process any Chinese text of any industry. Reading news, speaking novels smoothly, deal with text context intelligently, produce and playback voice continuously without time limit.
  7. Automatic translation, true words and pure pronunciation of the language, speech synthesis for the entire file or paragraph of text, and output the corresponding Yale, or Jyutping romanisation text. Mandarin words will be automatically translated into Cantonese by default, see some examples in that page.
  8. Both female and male voice supported, and child voice supported by algorithm generating with female voice.
  9. Portable, cross platform, written in pure ANSI C from scratch without external dependancies.
  10. Anywhere, running on AVR, ARM, PIC, MIPS embedded systems such as toy, watch, robot and iPhone, Android, etc, mobile platforms, of course any normal desktops, and embedded in products, such as news paper or ebook reader, story teller, language learning tool, chat, help desk and game agent, translation assistant and so on.
  11. Embeddable, can be loaded into memory and embedded in other programs.
Why Another TTS Engine?

The features of Yuet is the reason to develop another Chinese TTS engine.
  1. Although there's so many TTS engine that can process Chinese text, but none of them can satisfy the requirements and generate speech based on clear word border, emphasis on the appropriate words, including the engines from Google, Apple (Nuance), Microsoft, and NeoSpeech, iFLYTEK, eSpeak, Ekho, PiTL etc. The engine of Yuet is based on Chinese word segmentation and natural language understanding that differs compared to them.
  2. Minimising the size of Yuet to fit embedded system to an extremely small size is the design goal to pursue, and also the design philosophy of the software. The engine of Cantonese all-in-one standalone is only 4MB, whereas common solutions mentioned above from the famous companies even requires well over 500~600MB of storage. For embedded system, ultra-small footprint can have many advantages, e.g. high flexibility for programming, performance and dramatically reduced the hardware costs, etc.
  3. Offline, embedded TTS engine has the ability to avoid troubles caused by instability of network connection, and the high cost of the development and maintenance of the backend servers.
  4. Independent, complete. Yuet can handle any content of text, detect unknown words intelligently, no require of any extra dictionary. The category of the content can be in any field, any industry, e.g. architecture, agriculture, biology, business, commerce, communications, computer, electronics, environment, education, finance, industry, mechanical, oil, mining, law & polities, government, military, transport, engineering, medicine, physics & chemistry, sports, news, etc.
  5. And other reasons to develop yet another Chinese TTS engine.

Yuet, as a serious, tiny, offline, high speed, embedded speech synthesis engine for Chinese text, because of its extremely small size, it is well suited to small memory footprint, resource constrained embedded systems and microelectronics systems, suitable for both board level and C level integration and porting, such as MCU, FPGA, DSP, SoC and embedded RTOS, Android/Java VM, iPhone, Flash Player and more. Chip level implementation can be developed with new donation or investment.

Yuet can be running as an standalone Chinese text segmenter (morphological and semantic analyser), an standalone translator between Cantonese and Mandarin, an standalone generator of Chinese text romanisation, and other usage of Chinese text processing, e.g. natural language processing, Chinese text information extraction, retrieval, machine learning and data mining, etc.

Tiny embedded Chinese speech synthesis engine, suitable to: intelligent Chinese text processing, natural language understanding, language teaching, language learning, education for children, screen reader, speech translation, watch, toy, book, robot, finance news, book reader, help desk and translation assistant, game, animation, multimedia publishing, mobile phone manufacturers and other products that needs real-time convert Chinese text to speech, including software and computer, consumer device, electronic equipment and so on.

Yuet can have bindings for many modern programming languages, such as JavaScript, Ruby, TCL, Lua, Python, Java, ActionScript, ErLang, Haskell, Perl, Objective-C, Swift, PHP, and Microsoft .Net platform, etc.

There is an English-Chinese dictionary app demonstrates the features of the engine and has the same name on App Store. The app was designed as a Chinese language learning pocket tool, an speaker assistant with correct native pronunciation. See Yuet in action, download the app on iTunes,

End User Option

  1.  µctts_0.2.26.tar.gz (4MB, download deprecated, email required.)
    Standalone executable binary, the program is a command line tool that can segment Chinese text into words, generate Yale romanisation of the input text, and Cantonese speech synthesis of the input text. Try it, you'll be amazing at how accurate the engine is. It can segment any sentence of the attached material into words with 100% correct output.
    Yeung:uctts yeung$./uctts -m -f "我們認為最好以投資的方式來進行技術轉移。"
    Yeung:uctts yeung$./uctts -c -f "我们认为最好以投资的方式来进行技术转移。"
    Yeung:uctts yeung$./uctts -m -v "我們認為最好以投資的方式來進行技術轉移。"
    我们(wǒ men)认为(rèn wéi)最好(zuì hǎo)以(yǐ)投资(tóu zī)的(de)  
    方式(fāng shì)来(lái)进行(jìn xíng)技术(jì shù)转移(zhuǎn yí)。
    Yeung:uctts yeung$./uctts -c -v "我們認為最好以投資的方式來進行技術轉移。"
    我們(ngo5 mun4)認為(jing6 wai4)最好(zeoi3 hou3)以(ji5)投資(tau4 zi1)的(dik1)
    方式(fong1 sik1)來(loi4)進行(zeon3 hang6)技術(gei6 seot6)轉移(zyun2 ji4)。
    Yeung:uctts yeung$./uctts
               __  __ 
     __ ______/ /_/ /____ 
    / // / __/ __/ __(_-< 
    Version: 0.2.26  
    Copyright (c) 2015 Sevenuc Consulting
    Usage: uctts -[c|m] -[f|s|r|v] "text"
      -c for Cantonese, -m for Mandarin.
      -f format input text, translate Mandarin to Cantonese or vice versa.
      -s word segmentation, -r romanisation generation, -v voice synthesise.
      "text" is the content to process.
      e.g: uctts -c -r "text".
    Samples produced by the app:
    Cantonese  (Text: 我們認為最好以投資的方式來進行技術轉移。)
    Mandarin  (Text: 我們將不停地幫助你方更新現在和將來的產品技術。)
  2. Develop product with the standard library (C shared dynamic library or static library), must have the legal certificate.

  1. Download:    v0.2.26 API document (download deprecated, email required.)
  2. See the screenshots of the demo app.
  3. Refer another app - Cantonese basic vocabulary and grammar for more info.
  4. Translation between Cantonese and Mandarin, see some samples.
  5. ChangeLog 変更履歴: revision history of the development.
  6. In addition, as a bonus, the dictionary app have included all items in the book - A Dictionary of Cantonese Slang (俗語字典) - the language of Hong Kong movies, street gangs and city life, refer some funny Cantonese idioms and proverbs.
  7. Resources for learning Cantonese, materials of book and audio.