private function createPronounceable($length)
    {
        $retVal = '';

        /**
         * List of vowels and vowel sounds.
         */
        $v = array(
            'a',
            'e',
            'i',
            'o',
            'u',
            'ae',
            'ou',
            'io',
            'ea',
            'ou',
            'ia',
            'ai',
        );

        /**
         * List of consonants and consonant sounds.
         */
        $c = array(
            'b',
            'c',
            'd',
            'g',
            'h',
            'j',
            'k',
            'l',
            'm',
            'n',
            'p',
            'r',
            's',
            't',
            'u',
            'v',
            'w',
            'tr',
            'cr',
            'fr',
            'dr',
            'wr',
            'pr',
            'th',
            'ch',
            'ph',
            'st',
            'sl',
            'cl',
        );

        $vCount = 12;
        $cCount = 29;

        for ($i = 0; $i < $length; ++$i) {
            $retVal .= $c[mt_rand(0, $cCount - 1)].$v[mt_rand(0, $vCount - 1)];
        }

        return mb_substr($retVal, 0, $length, 'UTF-8');
    }