相关疑难解决方法(0)

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

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

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

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

相关:有没有办法对一个单词的发音难度进行排名?,但我没有列表,我无法预先计算.


根据评论更新.

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

algorithm phonetics

11
推荐指数
1
解决办法
1158
查看次数

发音性算法

我正在努力寻找/创建一个可以确定随机5个字母组合的可读性的算法.

到目前为止,我发现的最接近的是来自这个3岁的StackOverflow线程:

衡量一个单词的可读性?

<?php
// Score: 1
echo pronounceability('namelet') . "\n";

// Score: 0.71428571428571
echo pronounceability('nameoic') . "\n";

function pronounceability($word) {
    static $vowels = array
        (
        'a',
        'e',
        'i',
        'o',
        'u',
        'y'
        );

    static $composites = array
        (
        'mm',
        'll',
        'th',
        'ing'
        );

    if (!is_string($word)) return false;

    // Remove non letters and put in lowercase
    $word = preg_replace('/[^a-z]/i', '', $word);
    $word = strtolower($word);

    // Special case
    if ($word == 'a') return 1;

    $len = strlen($word);

    // Let's not parse an …
Run Code Online (Sandbox Code Playgroud)

php algorithm function

3
推荐指数
1
解决办法
2360
查看次数

标签 统计

algorithm ×2

function ×1

phonetics ×1

php ×1