语境
我必须使用 Google Cloud Speech api 在 Xamarin.iOS 应用程序中实现 Speech to Text 功能。
音频需要在用户说话时进行流式传输,以便我们可以尽快显示用户所说的内容。
首先,我尝试使用Google.Cloud.Speech.V1 Nuget 包,但 gRPC 库似乎不适用于 Xamarin(https://github.com/grpc/grpc/issues/1620、https://forums.xamarin 。 com/discussion/94534/how-to-use-google-cloud-speech-api-within-xamarin-forms,Xamarin,Grpc,无法使用令牌 0100002b 解析类型)。
所以我尝试在这个示例上创建一个绑定:https ://github.com/GoogleCloudPlatform/ios-docs-samples/tree/master/speech/Objective-C/Speech-gRPC-Streaming 。
我创建了一个静态库,只保留SpeechRecognitionService.h和SpeechRecognitionService.m文件并生成 *.a fat 库。
问题
我必须使用 Sharpie 生成 ApiDefinition.cs。所以我执行了命令sharpie bind -sdk iphoneos11.2 -output Output -scope . [full-path-to-SpeechRecognitionService.h]
。我尝试了一些铿锵声选项,但每次我遇到这种错误时:
Parsing 1 header files...
[full-path-to-project]/SpeechRecognitionService.h:18:9: fatal error:
'google/cloud/speech/v1/CloudSpeech.pbrpc.h' file not found
#import "google/cloud/speech/v1/CloudSpeech.pbrpc.h"
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Binding...
1 error generated.
Error while processing [full-path-to-project]/SpeechRecognitionService.h.
Done. Exiting with error code 1.
error: Clang failed to parse input and exited with code 1
似乎我必须传递一些 clang 参数来告诉标题在哪里,但它们并不都在一个文件夹中。
如何告诉 Sharpie 在多个文件夹中搜索标题?