Как я могу проверить, можно ли произносить строку?

Я хотел бы программно проверить, можно ли произносить строку или нужно ли ее произносить.

Например, internationalization можно прочитать, но i18n не может и не hhdirgxzf.

Я могу придумать некоторые простые эвристики, такие как проверка, содержит ли строка не-альфа-символы, но я надеюсь, что есть более надежный и научный способ сделать это. Существуют ли алгоритмические подходы, позволяющие оценить строку в зависимости от того, насколько легко ее произносить?

Связанный: Есть ли способ оценить сложность произношения слова?, однако у меня нет списка, и я не могу выполнить предварительный расчет.


Обновление на основе комментариев.

  • Поскольку я говорю по-английски, меня интересует английский, но я мог представить алгоритм, основанный на способе звучания и говорения, а не на характеристиках конкретного языка.
  • Под «произнесенным» я подразумеваю, что строка может быть прочитана естественным образом, можно произнести hhdirgxzf, но это не будет звучать ни одно слово естественного языка, ее нужно будет разбить.
  • Я имею в виду конкретный вариант использования, когда мне отправляют строки, и я хочу использовать базовую систему преобразования текста в речь, чтобы читать их вслух. Я хочу определить, какие лексемы в строке разрешить системе TTS произнести, а какие - по буквам, допуская ошибку в произношении, если не уверен.

person brabster    schedule 29.08.2012    source источник
comment
Кто произносит? Говорящие на мандаринском диалекте? Шведскоговорящие? Англоговорящие? Все?   -  person Emil Vikström    schedule 29.08.2012
comment
Я понятия не имею, сработает ли это, но я бы попытался извлечь особенности из данных (расположение гласных, согласные в строке, ...) и использовать некоторый алгоритм классификации после ручной маркировки набора образцов. (Никогда не пробовал, поэтому понятия не имею, даст ли это хорошие результаты)   -  person amit    schedule 29.08.2012
comment
Я могу произносить i18n, что-то вроде eye-ate-een-en. Другой ваш пример немного сложнее, но я попробую ...   -  person High Performance Mark    schedule 29.08.2012
comment
Те можно произносить. i18n - ›eye-eighteen-en и hhdirgxzf -› hud-er-gux-zuf.   -  person aroth    schedule 29.08.2012
comment
@aroth: Думаю, второй пример ближе к hu-hu-der-gez-zof   -  person High Performance Mark    schedule 29.08.2012
comment
Произносимость может быть тем, о чем движки TTS (Text To Speech) могут высказать свое мнение, поскольку им в любом случае придется проделать тяжелую работу по силлабификации. Сделать это самому будет непростой задачей - получайте удовольствие, например, от сизигии, силы, Найтсбриджа ...   -  person AakashM    schedule 29.08.2012
comment
Scone можно произносить, но многие люди произносят это неправильно. Понимать можно зачитывать, но под диктовку, вероятно, все равно следует произносить слова по буквам, потому что в британском английском есть два варианта написания этого слова, и это версия только для британцев. Точно так же мое имя Стивен можно произносить, но часто его нужно произносить частично.   -  person Steve Jessop    schedule 29.08.2012
comment
Кстати, что интересно, то, как работают звук и говорение, частично зависит от языка. Обработка речи мозгом частично запрограммирована фонемами, которые вы слышите. Таким образом, некоторые (не все) жители Восточной Азии испытывают трудности с различением английских звуков l и r. Многие жители Запада не могут отличить южноазиатский мягкий звук d от жесткого th, и большинство не могут его произнести. У меня шепелявит на некоторых языках, потому что я не могу повернуть rs, поэтому есть нормальные французские слова, которые я не могу правильно произносить, а испанский - кошмар, но я прекрасно слышу разницу. И так далее.   -  person Steve Jessop    schedule 29.08.2012
comment
Сравните свои слова с файлом английского словаря   -  person Nicolas Repiquet    schedule 29.08.2012
comment
@aroth Я думаю, что High Performance Mark выдал себя скорее изнутри, чем из внешнего Qwghlm   -  person Pete Kirkham    schedule 30.08.2012


Ответы (3)


У вас может быть некоторый успех, если сначала разбить слово на слоги. Этот вопрос по SO может помочь. Конечно, это будет работать только для языков, которые, как и английский, используют алфавит, включающий буквы, и чьи буквы включают гласные звуки.

person High Performance Mark    schedule 29.08.2012

Может быть, посчитать альфа-символы и разделить их на длину строки. Оценка на основе плотности буквенных символов? Также, может быть, уменьшить количество очков?

person Jacob Lauritzen    schedule 29.08.2012

Каков источник этих строк? Если вы создаете их сами, вы можете попытаться создать произносимые строки. Идеи, которые могут сработать, включают:

  • начните со слова и замените гласные на другие гласные и согласные на аналогичные согласные.

  • генерировать случайный Soundex и работать в обратном направлении к слову, которое генерирует этот Soundex.

  • соединить три или четыре произносимых слога.

  • чередование согласных и гласных.

  • Lorem Ipsum

person rossum    schedule 29.08.2012
comment
Фактически, строки отправлены мне, и я предположил, что мне нужно будет токенизировать, прежде чем что-либо делать. Я понятия не имею, что там будет, и мне нужно попытаться выяснить, сможет ли механизм преобразования текста в речь произносить каждое «слово» или нет. - person brabster; 29.08.2012