как реагировать на намерения браузера?

Вы можете использовать .NET lib ( System.Speech.Synthesis ).

Согласно Microsoft :

В пространстве имен System.Speech.Synthesis содержатся классы, которые позволяют вам инициализировать и настроить механизм синтеза речи, создавать подсказки, генерировать речь, отвечать на события и изменять характеристики голоса. Синтез речи часто упоминается как текст-речь или TTS.

blockquote>

Синтезатор речи принимает текст как входной сигнал и создает аудиопоток в качестве вывода. Синтез речи также упоминается как текст-речь (TTS).

Синтезатор должен выполнять существенный анализ и обработку, чтобы точно преобразовать строку символов в аудиопоток, который звучит так же, как и слова говорят. Самый простой способ представить, как это работает, - это изображение переднего и заднего конца двухкомпонентной системы.

Текстовый анализ

Передняя часть специализируется на анализе текста с использованием правила естественного языка. Он анализирует строку символов, чтобы определить, где слова (что легко сделать на английском, но не так просто на таких языках, как китайский и японский). Этот передний конец также определяет грамматические детали, такие как функции и части речи. Например, какие слова являются правильными существительными, числами и т. Д. где предложения начинаются и заканчиваются; является ли фраза вопросом или заявлением; и будет ли утверждение прошлое, настоящее или будущее.

Все эти элементы имеют решающее значение для выбора подходящих произношений и интонаций для слов, фраз и предложений. Подумайте, что на английском языке вопрос обычно заканчивается повышающимся шагом или что слово «читать» произносится очень по-разному в зависимости от его времени. Ясно, что понимание того, как используется слово или фраза, является критическим аспектом интерпретации текста в звуке. Для дальнейшего усложнения вопросов правила для каждого языка несколько отличаются. Итак, как вы можете себе представить, передняя часть должна провести очень сложный анализ.

Звуковое поколение

У задней части есть совсем другая задача. Это делает анализ, выполненный передним концом, и посредством некоторого нетривиального анализа генерирует соответствующие звуки для входного текста. Старые синтезаторы (и современные синтезаторы с наименьшими отпечатками) генерируют отдельные звуки алгоритмически, что приводит к очень роботизированному звучанию. Современные синтезаторы, такие как Windows Vista и Windows 7, используют базу данных звуковых сегментов, построенных из часов и часов записанной речи. Эффективность заднего конца зависит от того, насколько хорошо он выбирает соответствующие сегменты звука для любого заданного входа и плавно сплачивает их вместе.

Готов к использованию

Текстово- речевые возможности, описанные выше, встроены в операционные системы Windows Vista и Windows 7, что позволяет приложениям легко использовать эту технологию. Это устраняет необходимость создания собственных речевых движков. Вы можете вызвать всю эту обработку с помощью одного вызова функции. См. «Обсуждение содержимого строки».

попробуйте этот код:

using System.Speech.Synthesis;

namespace ConsoleApplication5
{
    class Program
    {

        static void Main(string[] args)
        {
            SpeechSynthesizer synthesizer = new SpeechSynthesizer();
            synthesizer.Volume = 100;  // 0...100
            synthesizer.Rate = -2;     // -10...10

            // Synchronous
            synthesizer.Speak("Hello World");

            // Asynchronous
            synthesizer.SpeakAsync("Hello World");



        }

    }
}

1
задан nourdine 14 July 2010 в 20:18
поделиться

1 ответ

Я не могу проверить это в данный момент, чтобы быть уверенным, но я думаю, что вы можете зарегистрироваться как фильтр намерений SEND, используя код ниже, и тогда вы должны появиться как поставщик.

<intent-filter android:label="@string/app_name">
    <action android:name="android.intent.action.SEND" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="text/plain" />
</intent-filter>

А затем получить текст из дополнительных функций...

Intent callingIntent = getIntent();
String url = callingIntent.getStringExtra(Intent.EXTRA_TEXT);

Я бы также предложил посмотреть документацию по ACTION_SEND, чтобы увидеть поддерживаемые миметипы и дополнительные пары ключ-значение.

Из документации ACTION_SEND:

Ввод: getType() - MIME-тип отправляемых данных. get*Extra может иметь поле EXTRA_TEXT или EXTRA_STREAM, содержащее отправляемые данные. Если используется EXTRA_TEXT, MIME-тип должен быть "text/plain"; в противном случае это должен быть MIME-тип данных в EXTRA_STREAM. Используйте /, если тип MIME неизвестен (это позволит использовать только те отправители, которые могут обрабатывать общие потоки данных).

Необязательными стандартными дополнениями, которые могут быть интерпретированы некоторыми получателями как соответствующие, являются: EXTRA_EMAIL, EXTRA_CC, EXTRA_BCC, EXTRA_SUBJECT.

2
ответ дан 2 September 2019 в 23:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: