getStreamingText method
Stream<SpeechToTextResponse>
getStreamingText({
- required Stream<
List< stream,int> > - SpeechToTextOptions? options,
- CancellationToken? cancellationToken,
override
Transcribes the given audio stream as a stream of
updates.
Implementation
@override
Stream<SpeechToTextResponse> getStreamingText({
required Stream<List<int>> stream,
SpeechToTextOptions? options,
CancellationToken? cancellationToken,
}) {
Stream<SpeechToTextResponse> streamFn() async* {
if (_logger.isEnabled(LogLevel.debug)) {
_logger.logDebug('getStreamingText invoked.');
}
if (_logger.isEnabled(LogLevel.trace)) {
_logger.logTrace(
'getStreamingText invoked. '
'Options: '
'${options != null ? _asJson(_optionsToMap(options)) : 'null'}.',
);
}
try {
await for (final update in super.getStreamingText(
stream: stream,
options: options,
cancellationToken: cancellationToken,
)) {
if (_logger.isEnabled(LogLevel.trace)) {
_logger.logTrace(
'getStreamingText received update. '
'Update: ${_asJson(_responseToMap(update))}.',
);
}
yield update;
}
if (_logger.isEnabled(LogLevel.debug)) {
_logger.logDebug('getStreamingText completed.');
}
} on OperationCanceledException {
if (_logger.isEnabled(LogLevel.debug)) {
_logger.logDebug('getStreamingText canceled.');
}
rethrow;
} catch (e) {
_logger.logError('getStreamingText failed.', error: e);
rethrow;
}
}
return streamFn();
}