requestBeforeStartAudioRecord method
void
requestBeforeStartAudioRecord(
- bool singleUtterance,
- VaisSpeechCallback? listener,
- String modelParamText
Implementation
void requestBeforeStartAudioRecord(bool singleUtterance, VaisSpeechCallback? listener,String modelParamText) {
gRpcConfig!.clear();
gRpcConfig!.encoding = cloudSpeech.RecognitionConfig_AudioEncoding.LINEAR16;
gRpcConfig!.sampleRateHertz = 16000;
var modelParam = new cloudSpeech.ModelParam();
modelParam.graph = modelParamText;
gRpcConfig!.modelParam = modelParam;
gRpcConfigStream!.clear();
gRpcConfigStream!.config = gRpcConfig!;
gRpcConfigStream!.interimResults = true;
gRpcConfigStream!.singleUtterance = singleUtterance;
gRpcRequestStream!.clear();
gRpcRequestStream!.streamingConfig = gRpcConfigStream!;
if (gRpcRequestStreamController.isClosed) {
gRpcRequestStreamController = StreamController();
}
gRpcRequestStreamController.sink.add(gRpcRequestStream);
listener?.onConnectionChanged!(true);
gRpcStub.streamingRecognize(gRpcRequestStreamController.stream).listen((data) {
var result = data.results[0];
final String output = result.alternatives[0].transcript;
print("Success >>>>>>>>>>>>>> $output");
listener!.onConnectionChanged!(true);
int stime = 0;
int etime = 0;
String audioPath = "";
String audioName = "";
try{
if(result.isFinal){
print('audio file name nay');
print(result.audioFilename);
totalOutput = totalOutput + ' '+output;
if(result.audioFilename != null && result.audioFilename.isNotEmpty){
audioPath = result.audioFilename.substring(result.audioFilename.lastIndexOf('|')+1);
String endTime= result.audioFilename.substring(result.audioFilename.lastIndexOf('__')+2).replaceAll('|'+audioPath, '');
String startTime = result.audioFilename.substring(result.audioFilename.indexOf('__')+2).replaceAll('__'+endTime+'|'+audioPath, '');
print(startTime);
stime = ((int.parse(startTime) / frame_size ).toDouble() * frame_duration * 1000).toInt();
etime = ((int.parse(endTime) / frame_size ).toDouble() * frame_duration * 1000).toInt();
audioName = result.audioFilename.replaceAll('__'+startTime+'__'+endTime+'|'+audioPath, '');
print(audioName);
print(stime);
print(etime);
print(audioPath);
}
listener.onGeneratedSpeechText!(totalOutput,output,result.isFinal,audioName,stime,etime,audioPath);
}
else{
listener.onGeneratedSpeechText!(totalOutput + ' '+output,output,result.isFinal,audioName,stime,etime,audioPath);
}
}catch(e){
print(e);
print('error');
}
}, onError: (error) {
print("Error $error");
listener!.onConnectionChanged!(false);
}, onDone: () {
print("Done");
listener!.onConnectionChanged!(false);
});
}