1

语境

我必须使用 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-formsXamarin,Grpc,无法使用令牌 0100002b 解析类型)。

所以我尝试在这个示例上创建一个绑定:https ://github.com/GoogleCloudPlatform/ios-docs-samples/tree/master/speech/Objective-C/Speech-gRPC-Streaming 。

我创建了一个静态库,只保留SpeechRecognitionService.hSpeechRecognitionService.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 在多个文件夹中搜索标题?

4

1 回答 1

0

您可以使用*.h来匹配项目文件夹下的所有头文件。

例如

sharpie bind --output=InfColorPicker --namespace=InfColorPicker --sdk=[iphone-os] [full-path-to-project]/InfColorPicker/InfColorPicker/*.h

你可以在官方文档中搜索

于 2018-03-29T08:40:18.353 回答