首页 > 解决方案 > 如何在 Google Cloud 请求中设置最大接收消息长度?

问题描述

我有以下 Google Cloud 通话:

    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字节,所以看起来响应太大了。服务器想要发送响应,但客户端无法接受。如何提高这个限制?

标签: google-cloud-platformgrpcgoogle-text-to-speech

解决方案


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

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

是该setMaxInboundMessageSize方法的文档。

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


推荐阅读