Лучшие советы по развитию функции регистратора

Эффективное управление записями сегодня актуально как никогда. В наш цифровой век огромный объем информации – аудио, видео и многое другое – необходимо обрабатывать за ограниченное время. Это делает функцию расшифровки в реальном времени необходимой, поскольку она полезна во многих сценариях.
При проведении аудио- или видеоконференций эта функция записывает протоколы встреч, к которым я могу обратиться позже, что удобнее, чем писать их самостоятельно. Я видел, как мои дети пытаются делать заметки во время онлайн-курсов, поэтому я знаю, что этот процесс может быть намного проще с помощью функции транскрипции. Одним словом, она избавляет детей от необходимости записывать все, что говорит преподаватель, позволяя им сосредоточиться на самой лекции и легко просматривать содержание позже. Кроме того, живые субтитры предоставляют зрителям субтитры в реальном времени для более комфортного просмотра.
Как программист, я верю в то, что “действия говорят громче слов”. Именно поэтому я разработал функцию транскрипции в реальном времени с помощью возможности транскрипции в реальном времени из ML Kit.

Демонстрация


Эта функция транскрибирует до 5 часов речи на китайский, английский (или оба) и французский языки в режиме реального времени. Кроме того, выходной текст снабжен пунктуацией и содержит временные метки.
Эта функция имеет некоторые требования: поддержка французского языка зависит от модели мобильного телефона, в то время как китайский и английский языки доступны на всех моделях мобильных телефонов. Кроме того, для работы функции требуется подключение к Интернету.
Итак, давайте перейдем к сути этой статьи: Как я разработал эту функцию транскрипции в реальном времени.

Процедура разработки

i. Проведите необходимую подготовку. Это подробно описано в разделе “Ссылки”.
ii. Создайте и затем настройте распознаватель речи.

MLSpeechRealTimeTranscriptionConfig config = new MLSpeechRealTimeTranscriptionConfig.Factory()
    // Set the language, which can be Chinese, English, both Chinese and English, or French.
    .setLanguage(MLSpeechRealTimeTranscriptionConstants.LAN_ZH_CN)
    // Punctuate the text recognized from the speech.
    .enablePunctuation(true)
    // Set the sentence offset.
    .enableSentenceTimeOffset(true)
    // Set the word offset.
    .enableWordTimeOffset(true)
    .create();
MLSpeechRealTimeTranscription mSpeechRecognizer = MLSpeechRealTimeTranscription.getInstance();
Вход в полноэкранный режим Выйдите из полноэкранного режима

iii. Создайте обратный вызов для слушателя результатов распознавания речи.

// Use the callback to implement the [MLSpeechRealTimeTranscriptionListener](https://developer.huawei.com/consumer/en/doc/development/hiai-References/mlspeechrealtimetranscriptionlistener-0000001159518088) API and methods in the API.
Protected class SpeechRecognitionListener implements MLSpeechRealTimeTranscriptionListener{
    @Override
    public void onStartListening() {
        // The recorder starts to receive speech.
    }

    @Override
    public void onStartingOfSpeech() {
        // The speech recognizer detects the user speaking.
    }

    @Override
    public void onVoiceDataReceived(byte[] data, float energy, Bundle bundle) {
        // Return the original PCM stream and audio power to the user. The API does not run in the main thread, and the return result is processed in a sub-thread.
   }

    @Override
    public void onRecognizingResults(Bundle partialResults) {
        // Receive recognized text from **MLSpeechRealTimeTranscription**.
    }

    @Override
    public void onError(int error, String errorMessage) {
        // Callback when an error occurs during recognition.
    }

    @Override
    public void onState(int state,Bundle params) {
        // Notify the app of the recognizer status change.
    }
}
Войдите в полноэкранный режим Выйти из полноэкранного режима

iv. Привяжите распознаватель речи.

mSpeechRecognizer.setRealTimeTranscriptionListener(new SpeechRecognitionListener());
Вход в полноэкранный режим Выход из полноэкранного режима

v. Вызовите startRecognizing, чтобы начать распознавание речи.

mSpeechRecognizer.startRecognizing(config);
Войдите в полноэкранный режим Выход из полноэкранного режима

vi. Остановите распознавание и освободите ресурсы, занятые распознавателем, когда распознавание будет завершено.

if (mSpeechRecognizer!= null) {
    mSpeechRecognizer.destroy();
}
Войти в полноэкранный режим Выйти из полноэкранного режима

Ссылки

  • Настройка необходимой информации во время подготовки
  • Добавление подключаемого модуля и адреса репозитория Maven, а также настройка зависимостей сборки

Оцените статью
Procodings.ru
Добавить комментарий