如何在 Google 云请求中设置最大接收消息长度?

How to set the max receive message length in Google Cloud request?

我有以下 Google 云调用:

    var builder = new TextToSpeechClientBuilder();
    builder.JsonCredentials = @"...";

    var client = builder.Build();
    var data = client.SynthesizeSpeech(new SynthesisInput { Ssml = text },
        new VoiceSelectionParams { LanguageCode = culture.TwoLetterISOLanguageName },
        new AudioConfig { AudioEncoding = AudioEncoding.Linear16, SampleRateHertz = 8000 }).AudioContent;

它抛出以下异常:

Grpc.Core.RpcException: 'Status(StatusCode="ResourceExhausted", Detail="Received message larger than max (4675411 vs. 4194304)")'

请求小于2000字节,看来响应太大了。服务器要发送响应,但客户端不能接受。 如何增加这个限制?

为了克服错误Received message larger than max (4675411 vs. 4194304),您需要将入站邮件大小设置为更大的值。您可以在实例化构建器时执行此操作,这与创建通道时类似。以下是您的操作方法:

textToSpeechClient = TextToSpeechClient.create(TextToSpeechSettings
 .newBuilder()
 .setTransportChannelProvider(
   TextToSpeechSettings.defaultGrpcTransportProviderBuilder()
    .setMaxInboundMessageSize(8790801)
    .build())
.build());

HeresetMaxInboundMessageSize 方法的文档。

更新: 据我了解,您想使用 C#,但由于我找不到设置入站消息大小的方法,例如 Java(上文)。我在 Google 中打开了一个 Public 问题。虽然,我没有它的预计到达时间,但您可以跟踪 here.