iOS Question SFSpeechURLRecognitionRequest

Erel

B4X founder
Staff member
Licensed User
Longtime User
Add this code to the example:
B4X:
Sub RecognizeFromFile (Dir As String, FileName As String)
   Dim no As NativeObject = speech
   Dim nme As NativeObject = Me
   If Dir = File.DirAssets Then FileName = FileName.ToLowerCase
   nme.RunMethod("RecognizeFromUrl:::", Array(speech, no.GetField("recognizer"), "file://" & File.Combine(Dir, FileName)))
End Sub

#if OBJC
- (void) RecognizeFromUrl:(B4ISpeechRecognition*)speech :(SFSpeechRecognizer*)recognizer :(NSString*)url {
   SFSpeechURLRecognitionRequest* request = [[SFSpeechURLRecognitionRequest alloc]initWithURL:[NSURL URLWithString:url]];
   [recognizer recognitionTaskWithRequest:request resultHandler:^void (SFSpeechRecognitionResult *res, NSError* error) {
         B4IList *l1 = [B4IList new];
        [l1 Initialize];
        if (res.final) {
            for (SFTranscription *trans in res.transcriptions)
                [l1 Add:trans.formattedString];;
        }
        else
            [l1 Add:res.bestTranscription.formattedString];
        BOOL isFinal = res.isFinal;
        if (error != nil) {
            [B4I shared].lastError = error;
            isFinal = true;
        }
        [B4IObjectWrapper raiseEventFromDifferentThread:speech :@"_result:::" :@[@(error == nil), @(isFinal), l1]];
   }];
}
#End If
 
Upvote 0

Hilaire

Member
Licensed User
Longtime User
Hi Erel,

Thanks a lot for your prompt response, I will try it and let you know.

Cheers.

Jean-Marc
 
Upvote 0
Top