Преобразование текста в речь в Silverlight 4

Я создаю приложение, которое преобразует текст в речь, используя silverlight 4.0. Два варианта, которые я нашел, могут быть использованы:

  1. Используйте TTS на стороне клиента, что требует запуска приложения OOB. Кроме того, поскольку он использует собственные компоненты Windows, его нельзя использовать ни на каких других платформах (MAC).
  2. Используйте преобразование TTS в конце WCF. Это снова требует, чтобы служба WCF размещалась в IIS с учетной записью локальной системы для пула приложений.

Существуют ли какие-либо другие варианты, в которых нам не нужно предоставлять повышенные разрешения?


person Chinjoo    schedule 08.10.2011    source источник


Ответы (2)


Служба переводчика Bing имеет TTS для нескольких языков. Может быть, можно просто использовать часть TTS без перевода. В этом сообщении блога объясняется, как вызвать службу и выполнить TTS из Silverlight: http://timheuer.com/blog/archive/2010/03/22/silverlight-translator-text-to-speech-api.aspx

person Paul Dixon    schedule 10.10.2011

Еще одним хорошим решением является использование Google TTS: http://translate.google.com/translate_tts.

Код будет таким:

string url = string.Format("http://translate.google.com/translate_tts?tl=en&q={0}", textToSay);
WebClient client = new WebClient();
return client.DownloadData(url);

При использовании silverlight данные, полученные из приведенного выше кода (в массиве байтов), могут быть установлены в качестве источника медиа-элемента с преобразованием в поток памяти, как показано ниже:

_audioPlayer.SetSource(new MemoryStream(textToSpeech));

Где textToSpeech — это массив байтов, возвращенный из Google tts.

person Chinjoo    schedule 30.10.2011