Skip to content

Commit

Permalink
handling transform id for digits recognition
Browse files Browse the repository at this point in the history
  • Loading branch information
Elina Efremova committed Sep 8, 2021
1 parent ab70375 commit f181d89
Show file tree
Hide file tree
Showing 6 changed files with 51 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
* Closes the stream transaction and provides the finished result
* @param completionHandler The recognition completion handler
*/
-(void)closeStreamWithCompletionHandler:(CompletionHandler)completionHandler;
-(void)closeStreamWithCompletionHandler:(CompletionHandler)completionHandler
transformId:(NSString *)transformId;

@end
Original file line number Diff line number Diff line change
Expand Up @@ -55,17 +55,17 @@ -(void)progressRequest {
completionHandler:^(NSData * _Nullable data,
NSURLResponse * _Nullable response,
NSError * _Nullable error) {

NSError *responseError = [self checkError:error
withResponse:response
withErrorData:data];
if (responseError) {
self.completionHandler(responseError, nil);
return ;
}

self.result = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];

NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
self.transactionId = [httpResponse allHeaderFields][@"X-Transaction-Id"];
self.completionHandler(nil, self.result);
Expand All @@ -88,26 +88,36 @@ -(void)startStreamWithPackage:(NSString *)package

}

-(void)closeStreamWithCompletionHandler:(CompletionHandler)completionHandler {

-(void)closeStreamWithCompletionHandler:(CompletionHandler)completionHandler
transformId:(NSString *)transformId {
self.completionHandler = completionHandler;
NSMutableDictionary<NSString *, NSNumber *> *bodyParams = @{ }.mutableCopy;
if ([transformId length] != 0) {
bodyParams = @{
@"transform": @[ @{
@"id":transformId,
@"type":@"BUILD_IN"
}]};
};
NSLog(@"DELETE %@",STCASRURLManager.asrRecognizeStreamClose);
NSURLSessionDataTask *task = [self taskRequestWithTypeRequest:@"DELETE"
withBody:nil
withBody:[bodyParams count] == 0 ? nil : bodyParams
forURLString:self.closeRequest
completionHandler:^(NSData * _Nullable data,
NSURLResponse * _Nullable response,
NSError * _Nullable error) {

NSError *responseError = [self checkError:error
withResponse:response
withErrorData:data];
if (responseError) {
self.completionHandler(responseError, nil);
return ;
}

self.result = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];

[self finalizeRequest];
}];
[task resume];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,13 +74,16 @@ -(void)streamWithPackage:(NSString *)package
} startSessionHandler: startSessionHandler];
}

-(void)closeStreamWithCompletionHandler:(RecognizeCompletionHandler)completionHandler {
-(void)closeStreamWithCompletionHandler:(RecognizeCompletionHandler)completionHandler
transformId:(NSString *)transformId {
self.streamCompletionHandler = completionHandler;
if ( self.streamNetworkingManager ) {
[self.streamNetworkingManager closeStreamWithCompletionHandler:^(NSError *error, NSObject *result) {
NSDictionary *recognizeResult = (NSDictionary *)result;
self.streamCompletionHandler(error, recognizeResult);
}];
}
transformId: transformId
];
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ -(void)configureRecognizeKit:(void (^)(void)) startSessionHandler;
@interface STCStreamRecognizer(Private)

-(void)startSocketWithURL:(NSString *)urlString ;
-(void)closeSocket;
-(void)closeSocketWithTransformId:(NSString *)transformId;

-(void)handleResult:(NSDictionary *)result
withError:(NSError *)error;
Expand Down Expand Up @@ -76,15 +76,16 @@ - (void)setUpPeakPowerHandler: (PeakPowerHandler)peakPowerHandler {

- (void)stop {
[self.voiceManager stop];
[self closeSocket];
[self closeSocketWithTransformId:(@"")];
}


-(void)stopWithCompletionHandler:(RecognizingCompletionHandler)completionHandler {
-(void)stopWithCompletionHandler:(RecognizingCompletionHandler)completionHandler
transformId:(NSString*) transformId{
self.recognizeCompletionHandler = nil;
self.recognizeStopCompletionHandler = completionHandler;
[self.voiceManager stop];
[self closeSocket];
[self closeSocketWithTransformId:(transformId)];
}

@end
Expand All @@ -108,29 +109,34 @@ -(void)startSocketWithURL:(NSString *)urlString {
if (weakself.recognizeCompletionHandler) {
weakself.recognizeCompletionHandler(error, nil);
}
[weakself closeSocket];
[weakself closeSocketWithTransformId:(@"")];
return ;
}
if (weakself.recognizeCompletionHandler) {
weakself.recognizeCompletionHandler(nil, nil);
}

};

[self.socket connect];
}

-(void)closeSocket {
-(void)closeSocketWithTransformId:(NSString *)transformId {
[self.recognizeKit closeStreamWithCompletionHandler:^(NSError *error, NSDictionary *result) {
NSString *text = result[@"text"];
if ([result[@"interpretation"][transformId] length] != 0) {
text = result[@"interpretation"][transformId];
}
if (self.recognizeCompletionHandler) {
self.recognizeCompletionHandler(error, result[@"text"]);
self.recognizeCompletionHandler(error, text);
}
if (self.recognizeStopCompletionHandler) {
self.recognizeStopCompletionHandler(error, result[@"text"]);
self.recognizeStopCompletionHandler(error, text);
self.recognizeStopCompletionHandler = nil;
}
// [self.socket disconnect];
}];
// [self.socket disconnect];
}
transformId: transformId];
}

-(void)handleResult:(NSDictionary *)result
Expand All @@ -139,7 +145,7 @@ -(void)handleResult:(NSDictionary *)result
if(self.recognizeCompletionHandler) {
self.recognizeCompletionHandler(error, nil);
}

return ;
}
[self.voiceManager record];
Expand Down Expand Up @@ -177,7 +183,7 @@ -(void)configureVoiceManager {
if(weakself.peakPowerHandler != nil){
weakself.peakPowerHandler(peakPower);
}

[weakself handleData:data];
};
}
Expand Down
7 changes: 4 additions & 3 deletions SpeechproSpeechKit/SpeechproSpeechKit/STCRecognizeKit.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,15 @@

/**
* Is the block which is called when recognition data is received
* @param error Data receiving error.
* @param result Responce data.\nIf data received successfully, 'error' is nil
*/
typedef void (^RecognizeCompletionHandler) ( NSError *error, NSDictionary *result);

/**
* Is the block which is called when package list is received
* @param error Data receiving error.
* @param result Responce data.\nIf data received successfully, 'error' is nil
*/
Expand Down Expand Up @@ -71,6 +71,7 @@ withCompletionHandler:(RecognizeCompletionHandler)completionHandler;
* Closes the socket
* @param completionHandler The response block called when the result is received
*/
-(void)closeStreamWithCompletionHandler:(RecognizeCompletionHandler)completionHandler;
-(void)closeStreamWithCompletionHandler:(RecognizeCompletionHandler)completionHandler
transformId:(NSString*) transformId;

@end
3 changes: 2 additions & 1 deletion SpeechproSpeechKit/SpeechproSpeechKit/STCStreamRecognizing.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@
* Stops the recognition
* @param completionHandler The recognition completion handler
*/
-(void)stopWithCompletionHandler:(RecognizingCompletionHandler)completionHandler;
-(void)stopWithCompletionHandler:(RecognizingCompletionHandler)completionHandler
transformId:(NSString*) transformId;
-(void)setUpPeakPowerHandler: (PeakPowerHandler)peakPowerHandler;

@end

0 comments on commit f181d89

Please sign in to comment.