如何检查字符串是否可以发音?

时间:2012-08-29 10:02:03

标签: algorithm phonetics

我想以编程方式检查字符串是否可以发音或是否需要拼写出来。

例如,可以读出internationalization,但i18n不能,也不能hhdirgxzf

我可以想到一些简单的启发式方法,例如检查字符串是否包含非字母字符,但我希望有更强大和科学的方法来实现它。 是否有算法方法可以根据发音的容易程度对字符串进行评分?

相关:Is there a way to rank the difficulty of pronunciation of a word?,但我没有列表,我无法预先计算。


根据评论进行更新。

  • 由于我是英语使用者,我对英语很感兴趣,但我可以想象一种基于声音和说话方式的算法,而不是特定语言的特征。
  • 通过发音我的意思是字符串可以自然地读出来,可以发音hhdirgxzf但它听起来不会是一个自然语言单词,它需要被分解。
  • 我想到的一个特定用例是我发送字符串的地方,我想使用基本的文本到语音系统来大声读出它们。我想确定字符串中的哪些令牌让TTS系统尝试发音,以及哪些令牌拼写错误,如果不自信则在拼写错误。

3 个答案:

答案 0 :(得分:2)

首先将单词拆分为音节,您可能会取得一些成功。 This question on SO可能有所帮助。当然,这只适用于像英语一样使用包含字母和字母包含元音的字母的语言。

答案 1 :(得分:0)

可能会计算字母字符数,并将其除以字符串的长度。基于字母字符密度的分数? 另外,可能会降低每个数字的分数?

答案 2 :(得分:0)

这些字符串的来源是什么?如果你自己生成它们,那么你可以尝试生成可能的可发音字符串。可能有用的想法包括:

  • 以一个单词开头,用其他元音和辅音替换元音。

  • 生成一个随机Soundex并向后返回生成该Soundex的单词。

  • 连接三个或四个可发音的音节。

  • 替代辅音和元音。

  • Lorem Ipsum