getText method

  1. @override
Future<SpeechToTextResponse> getText({
  1. required Stream<List<int>> stream,
  2. SpeechToTextOptions? options,
  3. CancellationToken? cancellationToken,
})
override

Transcribes the given audio stream.

Implementation

@override
Future<SpeechToTextResponse> getText({
  required Stream<List<int>> stream,
  SpeechToTextOptions? options,
  CancellationToken? cancellationToken,
}) async {
  if (_logger.isEnabled(LogLevel.debug)) {
    _logger.logDebug('getText invoked.');
  }

  if (_logger.isEnabled(LogLevel.trace)) {
    _logger.logTrace(
      'getText invoked. '
      'Options: '
      '${options != null ? _asJson(_optionsToMap(options)) : 'null'}.',
    );
  }

  try {
    final response = await super.getText(
      stream: stream,
      options: options,
      cancellationToken: cancellationToken,
    );

    if (_logger.isEnabled(LogLevel.debug)) {
      _logger.logDebug('getText completed.');
    }

    if (_logger.isEnabled(LogLevel.trace)) {
      _logger.logTrace(
        'getText completed. '
        'Response: ${_asJson(_responseToMap(response))}.',
      );
    }

    return response;
  } on OperationCanceledException {
    if (_logger.isEnabled(LogLevel.debug)) {
      _logger.logDebug('getText canceled.');
    }
    rethrow;
  } catch (e) {
    _logger.logError('getText failed.', error: e);
    rethrow;
  }
}