அம்மா இங்கே வாவா!

தமிழ் சொல்பேசி / கணினி வழி ஒலிப்பதுக்கான கட்டுமானம்

 

சொல்பேசி

தமிழ் உரைநடை, எழுத்து, செய்திகளை எந்திர வழி ஒலிப்பது பற்றி ஏற்கனவே நிறைய எழுதப்பட்டுள்ளது. நானும் அந்த வரிசையில் ஒரு பதிவு செயதேன்.

தற்போது இங்கு, பேராசிரியர் வாசு அவரது விட்ட இடத்தில் இருந்து அந்த ஒலி உச்சரிப்பு நிரலை  கொஞ்சம் மேம்பாடுகளை செய்து வருகிறேன் : github (Tamil-tts).

உரைவழி ஒலி – TTS

இதில் எனக்கு பிடித்த உரையில் இருந்து ஒலி தயாரிப்பு வழி (tts synthesis method) என்பது “unit selective synthesis by analysis method” எனப்படும். இதனை USS A/S என்றும் ஆராய்ச்சி வட்டங்களில் சொல்லப்படும். இதில் முக்கியமாக என்னவென்றால் இரு நிலைகள் உண்டு :உரை  பரிசோதனை, அடுத்து ஒலி தயாரிப்பு.

முதல் நிலை : உரை  பரிசோதனை

ஒரு உரை செய்தியாக இருக்கலாம், அல்லது உதவி கோரலாகவும் இருக்கலாம். இதன் இரண்டையும் கண்டறிவது உரை பரிசோதனையின் வேலை. அதாவது, “இந்திய அரசு சீன பூகம்ப அபாய நிலையில் உள்ள மக்களுக்கு உதவி அளிக்க முன்வந்தது” என்பது செய்தி வசிப்பவர்போல் ஒரே குரலில் சொல்லலாம். அனால் “காப்பாத்துங்க, வெள்ளம் நீர் கழுத்தை எட்டப்போகுது!” என்பதை உரத்த குரலில் மட்டும் தான் ஒரு எந்திர ஒலிப்பு சொல்லவேண்டும்.

மென்மேலும் தமிழில் homophones சமயோலி கொண்ட சொற்களை சரியாக உச்சரிப்பதற்கு தேவையான மொழியியல் திறனாய்வுகளும் இந்த நிலையில் மட்டுமே ஆகவேண்டும். இவற்றை சொர்கண்டு போன்ற wordnet திட்டங்கள் நமக்கு அளிக்க வாய்ப்பு undu. இதனை parts of speech tagger என்றும் சொல்வது வழக்கம். தமிழில் சமயோலி கொண்ட சொற்கள் எனக்கு சட்டென்று நினைவுக்கு வரவில்லை – இதனை உங்களுக்கு ஏதேனும் உதாரணங்கள் தெரிந்தால் சொல்லவும்.

சொல் இடம் சார்ந்த , சொற்றொடர் சார்ந்த இலக்கண விவரங்களை இத்தகைய POS-கள் உச்சரிக்கும் உரையுடன் கோர்த்து annotations-களாக அடுத்த நிலைக்கு அனுப்பும்.

கடை நிலை : ஒலி உருவாக்குதல்

ஒலி உருவாக்குதல் என்பது ஏற்கனேவே நம்மால் சேமிக்க பட்ட உச்சரிப்புகளை database தரவில் இருந்து எடுத்து கோர்த்து இந்த syllable போன்ற தனிதுவமான உதிர்ப்பூக்களான ஒலிகளை ஒரு பூமாலை போன்று கோர்வையான சொற்றொடர் உச்சரிப்பாக எழுதிவிடலாம். இதை செய்வதில் சில graph optimization கேள்விகளை உருவாக்கி அதன் தீர்வுகளை கண்டெடுத்தால் மட்டுமே நல்ல உச்சரிப்பு கிடைக்கும் என்பது ஒரு தரப்பின் பொறியியல் கணிப்பு.

இப்படிபட்ட ஒன்று தான் கிழே பார்க்கலாம் : “அம்மா இங்கே வாவா” என்ற சொல்லை உச்சரிப்பது பற்றிய கடைநிலை பரிட்சயம். எப்படி கணினி உச்சரிக்கலாம்? 18 வழிகள் உள்ளது:

tts-twitter

ஆனால் எது சரியானது? மேலும் இந்த ஆராய்ச்சியின் தொடர்ச்சியை பற்றி எழுதுவேன்.

முத்து.

 

Simple Tamil Text to Speech engine

Hello friends, and Tamil aficionados – it is winter in Boston and start of three months of bitter cold, but beautiful skylines. A little treat for surviving through the low sunlight hours and gray cold days.

A simple Tamil Text to Speech (TTS) engine developed by Prof. Vasu Renganathan has been open-sourced through the lobbying work of T. Shrinivasan.

What is a TTS ?

TTS converts text to speech. That was easy. Now the hard part is how does the computer do that? We will investigate how the language structure of Tamil can be used to find a suitable algorithm, a set of rules, when applied systematically can generate the speech from text. But first we need to understand what is a phonetic language.

Phonetic Languages

The key is to identify that Tamil is a phonetic language, we have some simple ways of doing this. Basically if we write “முத்து” we say it as “மு + த் + து” phonetically. English is not the same, “Muthu” is written as such but pronounced in groupings of “Mu”+”th”+”u” as 3-syllables, but 5 letters. In Tamil முத்து has 3-letters and 3 syllables, with the number of letters to syllables mostly remaining the same.

OK, now how do we split a word into its constituent phonemes? Maybe by using open-tamil!

Basic Algorithm

So I propose a simple minded algorithm to generate speech from text.

  1. Split the given Tamil text to words and for each word apply the steps 2 – 5
  2. Split the word into phonemes (phonemes = syllables) for Tamil
  3. For each syllable find the corresponding phoneme (phoneme is pronunciation) in form of a sound clip. In Tamil this has been called a ‘மாத்திரை’.
  4. Concatennate all these phonemes into the word, and apply a linear smoothing filter with a window. This is simple signal processing theory.
  5. Add a pause, beat, based on word spacing or sentence/paragraph spacing.

This algorithm is simplistic, but it does capture the essence of a text-to-speech engine. It could sound fairly mechanical or ‘robotic’ but the sound has to be made better.

Please share your comments, and views. For those in cold countries, stay warm!