Skip to main content

Malayalam phonetic analyser

Project description

PyPI Version

This is python interface for the Malayalam phonetic analyser - mlphon.

Installation

Requires Python 3.9–3.12. Install using pip or uv:

$ pip install mlphon

or with uv:

$ uv pip install mlphon

Syllablize a Malayalam Word

The following python snippet will split a word in Malayalam script into syllables.

from mlphon import PhoneticAnalyser
mlphon = PhoneticAnalyser()
mlphon.split_to_syllables('കേരളം')

It will give the result

[‘കേ’, ‘ര’, ‘ളം’]

Phonetically analyse a Malayalam Word

from mlphon import PhoneticAnalyser
mlphon = PhoneticAnalyser()
mlphon.analyse('കേരളം')

It gives the result as a sequence of ipa and associated phonetic tags.

[{‘phonemes’: [{‘ipa’: ‘k’, ‘tags’: [‘plosive’, ‘voiceless’, ‘unaspirated’, ‘velar’]}, {‘ipa’: ‘eː’, ‘tags’: [‘v_sign’]}]}, {‘phonemes’: [{‘ipa’: ‘ɾ’, ‘tags’: [‘flapped’, ‘alveolar’]}, {‘ipa’: ‘a’, ‘tags’: [‘inherentvowel’]}]}, {‘phonemes’: [{‘ipa’: ‘ɭ’, ‘tags’: [‘lateral’, ‘retroflex’]}, {‘ipa’: ‘a’, ‘tags’: [‘inherentvowel’]}, {‘ipa’: ‘m’, ‘tags’: [‘anuswara’]}]}]

Malayalam g2p : Grapheme to Phoneme conversion

from mlphon import PhoneticAnalyser
mlphon = PhoneticAnalyser()
mlphon.grapheme_to_phoneme('കാറ്റ്')

It gives the ipa sequence as output.

[‘kaːṯṯə’]

Malayalam p2g : Phoneme to Grapheme conversion

from mlphon import PhoneticAnalyser
mlphon = PhoneticAnalyser()
mlphon.phoneme_to_grapheme('paːlə')

It gives the corresponding grapheme sequences as output.

[പാല്’]

Command Line Interface for the above operations: mlphon

usage:

mlphon [-h] [-s] [-a] [-p] [-pe string] [-se string] [-g] [-i INFILE]
        [-o OUTFILE] [-v]

optional arguments:
-h, --help            show this help message and exit
-s, --syllablize      Syllablize the input Malayalam string
-a, --analyse         Phonetically analyse the input Malayalam string
-p, --tophoneme       Transcribe the input Malayalam grapheme to phoneme
                        sequence
-pe string, --phoneme_end string
                        String to be inserted at end of phoneme
-se string, --syllable_end string
                        String to be inserted at end of syllable
-g, --tographeme      Transcribe the input phoneme sequence to Malayalam
                        grapheme
-i INFILE, --input INFILE
                        source of analysis data
-o OUTFILE, --output OUTFILE
                        target of generated strings
-v, --verbose         print verbosely while processing
For example to perform g2p operation on a set of words stored in input.txt with one Malayalam word per line,
mlphon -p -pe " " -se "." -i path/to/inputfile.txt -o path/to/outputfile.txt
Inputfile contents:
cat path/to/inputfile.txt
അകത്തുള്ളത്
അകപ്പെട്ടത്
അകലെ
Outputfile contents:
അകത്തുള്ളത് a .k a .t̪ t̪ u .ɭ ɭ a .t̪ ə .
അകപ്പെട്ടത്        a .k a .p p e .ʈ ʈ a .t̪ ə .
അകലെ    a .k a .l e .

Application: Using mlphon to create a phonetic lexicon

A typical use case of phonetic analysis is to create a phonetic lexicon to be used in Automatic Speech Recognition or Text to Speech Synthesis. The phonetic representation with each phoneme separated by a space can be obtained as below:

from mlphon import PhoneticAnalyser, split_as_phonemes
mlphon = PhoneticAnalyser()
analysis = mlphon.analyse('എന്നാൽ')
for result in analysis:
  split_as_phonemes(result)

It results in the output, two different valid phoneme sequences:

‘e n̪ n̪ aː l’

‘e n n aː l’

The phonetic representation with each syllable separated by a space can be obtained as below:

from mlphon import PhoneticAnalyser, split_as_syllables
mlphon = PhoneticAnalyser()
analysis = mlphon.analyse('ഇന്ത്യയുടെ')
for result in analysis:
  split_as_syllables(result)

It results in the output:

‘i n̪t̪ja ju ʈe’

To get phonemes and syllables with user defined end-marker strings as below:

from mlphon import PhoneticAnalyser, phonemize
mlphon = PhoneticAnalyser()
analysis = mlphon.analyse('ഇന്ത്യയുടെ')
for result in analysis:
  phonemize(result, " ", ".")

It results in the output with a ‘space’ after every phoneme and a ‘period’ after every syllable

‘i .n̪ t̪ j a .j u .ʈ e .’

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mlphon-3.1.3.tar.gz (19.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mlphon-3.1.3-py3-none-any.whl (19.8 kB view details)

Uploaded Python 3

File details

Details for the file mlphon-3.1.3.tar.gz.

File metadata

  • Download URL: mlphon-3.1.3.tar.gz
  • Upload date:
  • Size: 19.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for mlphon-3.1.3.tar.gz
Algorithm Hash digest
SHA256 6c73a3f5aabc155dea9ced8e108e027792565683b8e381f092fec8ba6f813fc3
MD5 98116091159b0f656664ec0e43848388
BLAKE2b-256 082898e648abea59d02b257621f2f5314b75d6b084b0e1a0878c678a82e62082

See more details on using hashes here.

File details

Details for the file mlphon-3.1.3-py3-none-any.whl.

File metadata

  • Download URL: mlphon-3.1.3-py3-none-any.whl
  • Upload date:
  • Size: 19.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for mlphon-3.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 067755a1aa1fa3cbb7aa0a7c4d130ceb6df45ee6d19625a3c2296d790acacc94
MD5 a842678f22f0ffa70cfe70683a7ffa96
BLAKE2b-256 d68d81b04a5047b87a696a7a064d499bf996543c6b711c9668c1a0566060270e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page