В iOS7 встроили синтезатор речи, теперь разработка мобильных приложений с «зачитыванием» текста занимает 10 минут.
За синтез речи отвечает класс AVSpeechSynthesizer Достаточно передать ему текст обернутый в класс AVSpeechUtterance и текст будет прочитан смартфоном.
Голос зависит от локали, в том числе поддерживается русский. Речь звучит четко и приятно.
var speechSynthesizer = new AVSpeechSynthesizer ();
var speechUtterance =
new AVSpeechUtterance ("Shall we play a game?");
speechSynthesizer.SpeakUtterance (speechUtterance);
Речь настраивается с помощью параметров класса AVSpeechUtterance:
На мой взгляд, текст по умолчанию звучит слишком быстро. Установим максимальную скорость уменьшенную в 3.6 раза
var speechSynthesizer = new AVSpeechSynthesizer ();
var speechUtterance =
new AVSpeechUtterance ("Shall we play a game?") {
Rate = AVSpeechUtterance.MaximumSpeechRate / (float)3.6
};
speechSynthesizer.SpeakUtterance (speechUtterance);
Синтезатор речи в iOS7 поддерживает только женский голос в 35 локалях, среди них — русская.
['ar-SA', 'cs-CZ', 'da-DK', 'de-DE', 'el-GR', 'en-AU', 'en-GB', 'en-IE', 'en-US', 'en-ZA', 'es-ES', 'es-MX', 'fi-FI', 'fr-CA', 'fr-FR', 'hi-IN', 'hu-HU', 'id-ID', 'it-IT', 'ja-JP', 'ko-KR', 'nl-BE', 'nl-NL', 'no-NO', 'pl-PL', 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sk-SK', 'sv-SE', 'th-TH', 'tr-TR', 'zh-CN', 'zh-HK', 'zh-TW']
var speechSynthesizer = new AVSpeechSynthesizer ();
var speechUtterance =
new AVSpeechUtterance ("Сыграем в игру?") {
Rate = AVSpeechUtterance.MaximumSpeechRate / (float)4,
Voice = AVSpeechSynthesisVoice.FromLanguage ("ru-RU")
};
speechSynthesizer.SpeakUtterance (speechUtterance);
Русский голос звучит прекрасно, попробуем проиграть длинный текст.
Есть огрехи, но на мой взгляд прекрасно. Подходит для боего использования.
Варианты приложений с синтезом речи:
В Android синтез речи появился в 2009 году (1.6+), звучит отвратительно.