1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/gdoudeng-react-native-baidu-asr

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

react-native-baidu-asr

Это библиотека Baidu для распознавания речи в React Native, которая может выполнять распознавание речи, активацию речи и синтез речи.

English | 简体中文 (см. README-zh.md)

Preview

Preview Preview Preview

Support

  • React Native >= 0.47.0
  • Android

В настоящее время платформа iOS не реализована. Я заполню её, когда у меня будет время.

Install

  • RN >= 0.60:
  1. yarn add react-native-baidu-asr
  • RN < 0.60:
  1. yarn add react-native-baidu-asr
  2. react-native link react-native-baidu-asr

Usage

Подробности см. в примере.

Сначала необходимо перейти в Baidu Voice Console, чтобы создать приложение и получить информацию для аутентификации: AppID, API Key, Secret Key.

  • Распознавание речи
import {
  BaiduAsr,
  StatusCode,
  IBaseData,
  RecognizerResultError,
  RecognizerResultData,
  VolumeData
} from 'react-native-baidu-asr';

// Initialize Baidu speech engine
BaiduAsr.init({
  APP_ID: 'Ваша информация для аутентификации AppID',
  APP_KEY: 'Ваша информация для аутентификации API Key',
  SECRET: 'Ваша информация для аутентификации Secret Key',
});

// Processing recognition results
this.resultListener = BaiduAsr.addResultListener(this.onRecognizerResult);
// Handling wrong results
this.errorListener = BaiduAsr.addErrorListener(this.onRecognizerError);
// Processing volume
this.volumeListener = BaiduAsr.addAsrVolumeListener(this.onAsrVolume);

// Start speech recognition
// For more input parameters, please refer to Baidu Voice Document
// https://ai.baidu.com/ai-doc/SPEECH/bkh07sd0m#asr_start-%E8%BE%93%E5%85%A5%E4%BA%8B%E4%BB%B6%E5%8F%82%E6%95%B0
BaiduAsr.start({
  // Long speech
  VAD_ENDPOINT_TIMEOUT: 0,
  BDS_ASR_ENABLE_LONG_SPEECH: true,
  // Disable punctuation
  DISABLE_PUNCTUATION: true,
});
  • Активация голоса

Сначала нужно экспортировать слово активации, предопределённые слова активации и пользовательские слова активации, оба должны быть экспортированы и использованы инструментом оценки слов активации.

import { BaiduWakeUp } from 'react-native-baidu-asr';

// Initialize Baidu speech engine
BaiduAsr.init({
  APP_ID: 'Ваша информация для аутентификации AppID',
  APP_KEY: 'Ваша информация для аутентификации API Key',
  SECRET: 'Ваша информация для аутентификации Secret Key',
});

// Wake up result
this.resultListener = BaiduWakeUp.addResultListener(this.onWakeUpResult);
// Handling wrong results
this.errorListener = BaiduWakeUp.addErrorListener(this.onWakeUpError);

// Start voice wake up
// For more input parameters, please refer to Baidu Voice Document
// https://ai.baidu.com/ai-doc/SPEECH/bkh07sd0m#wakeup_start-%E8%BE%93%E5%85%A5%E4%BA%8B%E4%BB%B6%E5%8F%82%E6%95%B0
BaiduWakeUp.start({
  // Indicates that the WakeUp.bin file is defined in the assets directory
  WP_WORDS_FILE: 'assets:///WakeUp.bin',
});
  • Синтез речи

The... addAsrVolumeListener(listener: (volume: VolumeData) => void): EmitterSubscription

Объём распознавания речи. Это событие будет вызвано, когда распознанная речь изменит громкость. Значение volume типа VolumeData имеет следующее значение:

  • volumePercent: текущий процент громкости;
  • volume: текущая громкость.

Голосовое пробуждение

Методы

  • BaiduWakeUp.init(options: InitOptions) — инициализация механизма распознавания речи Baidu.
  • BaiduWakeUp.start(options: WakeUpOptions) — запуск голосового пробуждения.
  • BaiduWakeUp.stop() — завершение голосового пробуждения.
  • BaiduWakeUp.release() — освобождение ресурсов. Если необходимо использовать их снова в следующий раз, необходимо вызвать метод init, чтобы инициализировать механизм.

События

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

Типы данных IBaseData следующие:

interface IBaseData<T = any> {  
  /**  
   * status code  
   */  
  code: StatusCode,  
  /**  
   * message  
   */  
  msg: string,  
  /**  
   * data  
   */  
  data: T  
}  
  • addResultListener(callback: (data: IBaseData<string | undefined>) => void): EmitterSubscription — обратный вызов результата голосового пробуждения, data имеет тип IBaseData<string | undefined>, его значение:

    • code: код состояния;
    • msg: сообщение;
    • data: слово пробуждения.
  • addErrorListener(callback: (data: IBaseData) => void): EmitterSubscription — ошибка в голосовом пробуждении. Сообщение об ошибке соответствует документу Baidu Voice. Его значение:

    • code: код ошибки;
    • msg: сообщение об ошибке;
    • data: неверные данные.

Тип данных data следующий:

interface WakeUpResultError {  
  // Error code You can look up the error code against Baidu voice documents https://ai.baidu.com/ai-doc/SPEECH/qk38lxh1q#%E5%94%A4%E9%86%92%E9%94%99%E8%AF%AF%E7%A0%81  
  errorCode: number,  
  // wrong information  
  errorMessage: string,  
  // Original error data returned by Baidu Voice  
  result: string  
}  

Синтез речи

Методы

  • BaiduSynthesizer.initialTts(options?: ITtsOptions) — инициализация механизма синтеза речи Baidu.
  • BaiduSynthesizer.speak(text: string, options?: ITtsOptions, callback?: (status: number) => void) — составление и воспроизведение.
  • BaiduSynthesizer.batchSpeak(textArray: string[], options?: ITtsOptions, callback?: (status: number) => void) — пакетное воспроизведение.
  • BadiuSynthesizer.pause(callback?: (status: number) => void) — пауза воспроизведения. Вступает в силу только после вызова метода speak.
  • BaiduSynthesizer.resume(callback?: (status: number) => void) — продолжение воспроизведения. Действует только после вызова методов speak и pause.
  • BaiduSynthesizer.stop(callback?: (status: number) => void) — остановка механизма синтеза. То есть остановить воспроизведение, синтез и очистить внутреннюю очередь синтеза.
  • BaiduSynthesizer.release() — освободить ресурсы. При необходимости использовать их снова в следующий раз необходимо вызвать метод initialTts для инициализации механизма.

События

Данные обратного вызова имеют унифицированный формат, аналогичный интерфейсу возврата API, с кодом, сообщением и данными.

SynthesizerData имеет следующий тип данных:

interface SynthesizerData<T = any> {  
  /**  
   * status code  
   */  
  code: SynthesizerStatusCode,  
  /**  
   * message  
   */  
  msg: string,  
  /**  
   * data  
   */  
  data: T  
}  
  • addResultListener(callback: (data: SynthesizerData<SynthesizerResultData | string | undefined>) => void): EmitterSubscription — обратный вызов результатов синтеза, data — это тип SynthesizerData<SynthesizerResultData | string | undefined> и его значение:
    • code: код статуса;
    • msg: сообщение;
    • data: данные обратного вызова.

Тип данных SynthesizerResultData следующий:

// There are many states in the synthesis process, from initialization to synthesis to the end of playback, so the data is actually indeterminate.  
interface RecognizerResultData {  
  // utterance Id  
  utteranceId?: string,  
  // Synthesis progress or playback progress  
  progress?: number  
}

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Библиотека Baidu для работы с голосом в react-native предоставляет интерфейсы для распознавания голоса, активации по голосу и синтеза речи. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/gdoudeng-react-native-baidu-asr.git
git@api.gitlife.ru:oschina-mirror/gdoudeng-react-native-baidu-asr.git
oschina-mirror
gdoudeng-react-native-baidu-asr
gdoudeng-react-native-baidu-asr
master