# String Fonética

Em ciências da computação String fonética é um programa na forma de uma função usado para indexar nomes através de som, como pronunciado em uma determinada língua. É usado para casos onde existam palavras homófonas de forma que elas possam ser emparelhadas apesar de diferenças secundárias na soletração.

## Um pouco de português

Fonemas são as menores unidades sonoras da fala. São os sons elementares e distintivos que, articulados e combinados, formam as sílabas, os vocábulos e a teia da frase, na comunicação oral. Funcionam como elementos distintivos ou diferenciadores das palavras, porque são capazes de diferenciar umas de outras, conforme se observa, por exemplo, nas seqüências: mala, mola, mula; gato, mato, pato, rato; mal, mar, mas.
Quando proferimos a palavra aflito, por exemplo, emitimos três sílabas e seis fonemas: a – fli – to. Percebemos que uma sílaba pode haver um ou mais fonemas.
No sistema fonético do português do Brasil há, aproximadamente, 33 fonemas.

## Classificação dos Fonemas

É importante não confundir letra com fonema. Fonema é o som, letra é o sinal gráfico que representa o som.
O ideal seria que cada fonema correspondesse uma só letra, e vice-versa, mas infelizmente isso não acontece. É que o nosso sistema ortográfico não é rigorosamente fonético, mas ainda está preso à origem das palavras. Escreve-se, por exemplo, exame, em vez de ezame. Assim, por força da tradição etimológica, podemos observar, na figuração dos fonemas portugueses, as seguintes imperfeições:
1) A mesma letra pode representar fonemas diferentes: eXame, Xale, próXimo, seXo; Cola, Cera. 2) O mesmo fonema pode ser figurado por letras diferentes: caSa, eXílio, coZinha; tiGela, laJe. 3) Um fonema pode ser representado pelo grupo de duas letras (dígrafos): maCHado, muLHer, uNHa, miSSa, caRRo. 4) A letra X pode representar, simultaneamente, dois fonemas diferentes: táXi (táCSi), fiXo (fiCSo), tóraX (tóraCS), heXacampeão (eGZacãpeãu). 5) Há letras que, às vezes, não representam fonemas; tão somente funcionam como notações léxicas: caMpo (cãpo), reNda (r~eda), regUe (U insonoro, para não se proferir reJe). 6) Usam-se letras simplesmente decorativas: não representam fonemas nem funcionam como notações léxicas: Hotel (otel), diScípulo (dicípulo), eXceção (eceção), qUina (qina). 7) Há fonemas que, em certos casos, não se representam graficamente: bem (bêI), batem (bát~eI, falam (fálãU).

## Figuração dos Fonemas

Os fonemas da língua portuguesa classificam-se em vogais, semivogais e consoantes. a) Vogais são fonemas sonoros , ou sons laríngeos, que chegam livremente ao exterior sem fazer ruído. b) Semivogais são os fonemas /i/ e /u/ átonos que se unem a um a vogal, formando com esta uma só sílaba: vai – andei – ouro água. c) Consoantes são os ruídos provenientes da resistência que os órgãos bucais opõem à corrente de ar.
Na língua portuguesa a vogal é o elemento básico, suficiente e indispensável para a formação da sílaba. As consoantes e as semivogais são fonemas dependentes: ó podem formar sílaba com o concurso das vogais.

## História

O primeiro caso em que foi necessário pesquisar palavras homófonas surgiu por volta do início do século XX, onde se precisava rastrear a cidade e os nomes de família de imigrantes não americanos durante o censo entre 1918 a 1920.
Robert C. Russell, teve a ideia de ordenar palavras pela forma como soam e não em ordem alfabética.

### Soundex

A partir de então surgiram diversas funções para realizar esse tipo de pesquisa com algumas mudanças. A mais conhecida é a função Soundex, uma variação do algoritmo criado por Russel.
A codificação de uma palavra por meio desse algoritmo consiste em uma nova palavra onde se mantém a primeira letra acrescida de outros 3 números. Vogais são suprimidas, e consoantes com sons iguais recebem o mesmo número.
| Valor | Consoantes |
| 1 | B, F, P, V |
| 2 | C, G, J, K, Q, S, X, Z |
| 3 | D,T |
| 4 | L |
| 5 | M,N |
| 6 | R |
Apenas os 4 dígitos são usados, o restante é suprimido. Quando existem duas letras iguais, uma do lado da outra, mantém-se apenas uma referência, caso a palavra tenha menos que 4 letras, o restante é acrescido de zero. Exemplo:
| PALAVRA | SOUNDEX |
| DANILO | D540 |
| MARILENE | M645 |
Existem variações desse algoritmo. Um bem conhecido é o [“Reverse Soundex”], que faz o processo inverso, ele mantém a última letra da palavra e as 3 últimas consoantes.
Esse algoritmo é tão funcional e útil que se tornou parte de alguns programas importantes, como o SQL Server e o Oracle. Algumas linguagens. como PHP, possuem também essa função, nas demais podemos implementá-las sem muitos problemas.
Em 1990, Lawrence Philips desenvolveu para o inglês o Metaphone, uma melhoria do algoritmo Soundex. Posteriormente o algoritmo foi adaptado para o Português do Brasil. Em 2000, o mesmo autor desenvolveu o Double Metaphone. Double, porque ele retorna duas letras ao invés de apenas uma. Esse algoritmo foi implementado em C++.