# What are typical triphones used in natural language processing?

What exactly would they be looking at in a sentence to aid the processing?

Also would such processing only work in English? I.e. would it be pointless looking for triphones in another language?

• "Triphones" to me sounds like an instance of "n-grams" so I would expect it to apply to all languages at least in some tweaked form. Sep 14, 2011 at 17:46

## 1 Answer

First, the definition: a triphone is a sequence of three phonemes. This is equivalent to saying it is a 3rd order Markov chain or a trigram over phonemes. The application of such a model is usually to ask "what is the probability of the third given the first two?" in a chain as long as the utterance. Such a model assumes that all previous phonemes other than the preceding two are irrelevant. This is called a Markov assumption.

So, here's an example in English. I wrote a quick script to calculate triphones from CMUDict data. Let's look at the highest probability segments that follow ɪŋ. I'll use # for a word boundary:

``````# 73.18% (bring, running)
k 6.02% (think)
z 5.88% (things)
ɚ 4.04% (singer)
``````

So from this we get that most likely if we've heard ɪŋ, we're about to hear a word boundary, which makes sense because -ɪŋ is a suffix but also because /ŋ/ is generally only allowed in codas (ends of syllables) in English. The next most likely segment is /k/, which is to be expected given place of articulation assimilation for nasals in English (e.g., /n/ before /k/ becomes /ŋ/). -z and -ɚ are suffixes in English, so we'd expect them where word boundaries are likely. So you see that this simple model has captured a bit of phonotactics, phonology, and morphology. This is why it's handy in speech recognition.

So you can see that whenever the memory required to make a good prediction is short, such models work well. Basically, performance in a language is affected by the fit between the phonotactics of the language and Markov assumptions; the more a language defines short, linear relationships between phonemes, the better this model will perform. Also, it often depends on how often such relationships help resolve possible ambiguities or "mis-hearings."

Now, as to how they use sentence information, this is getting into what's called language modeling in speech recognition. What that particular technique is doing is taking some guesses at the words, assigning part of speech tags to those guesses, and then using a grammar to validate the recognition. For example, consider these two possible recognitions (with likely part of speech tag assignments in slashes):

1. Bob/noun likes/verb Mary/noun.
2. Bob/noun likes/verb wary/adj.

There is some grammar that tells us that an adjective complement for a verb is not going to work, and that only #1 is going to make sense as a sentence.

It should be noted that no modern speech dictation system operates with hand-coded grammars like this. The complexity of maintaining such grammars is too high, and much of the performance comes from lexical information (what kind of objects does "like" prefer?) that is lost if you change all words into part of speech tags as the link suggests. So word-based n-gram models are usually used, with little concern for parts of speech or grammaticality. For further reading, see Spoken Language Processing: A Guide to Theory, Algorithm and System Development or Speech and Language Processing.

Edit: Added some real triphone data instead of the hypothetical example.

• Could you please give an actual real world example where you have "So, first an extreme example in English"? Thanks Sep 15, 2011 at 5:40
• Good idea. I just added some real data, generated by a quick Python script that I posted on gist. It requires NLTK and the CMUDict data. Sep 15, 2011 at 16:43
• Great - thanks a bundle - Your examples makes me think of a word like Nguyễn Sep 16, 2011 at 6:17