Протестировал на выборке ~100.000 фраз, результат мне показался приемлимым. Если что не так отпишитесь, писал быстро, вполне возможно, что-то пропустил/упустил/не протестил. Спасибо.
CREATE FUNCTION `METAPHONE`(Phrase VARCHAR(1000), Length INT) RETURNS varchar(400) CHARSET utf8
NO SQL...