带标点符号的流式传输语音识别
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
对原始 PCM 音频数据执行流式传输语音识别。
代码示例
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["很难理解","hardToUnderstand","thumb-down"],["信息或示例代码不正确","incorrectInformationOrSampleCode","thumb-down"],["没有我需要的信息/示例","missingTheInformationSamplesINeed","thumb-down"],["翻译问题","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],[],[],[],null,["# Streaming speech recognition with punctuation\n\nPerforms streaming speech recognition on raw PCM audio data.\n\nCode sample\n-----------\n\n### Java\n\n\nTo learn how to install and use the client library for Speech-to-Text, see\n[Speech-to-Text client libraries](/speech-to-text/docs/client-libraries).\n\n\nFor more information, see the\n[Speech-to-Text Java API\nreference documentation](/java/docs/reference/google-cloud-speech/latest/overview).\n\n\nTo authenticate to Speech-to-Text, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n /**\n * Performs streaming speech recognition on raw PCM audio data.\n *\n * @param fileName the path to a PCM audio file to transcribe.\n */\n public static void streamingTranscribeWithAutomaticPunctuation(String fileName) throws Exception {\n Path path = Paths.get(fileName);\n byte[] data = Files.readAllBytes(path);\n\n // Instantiates a client with GOOGLE_APPLICATION_CREDENTIALS\n try (SpeechClient speech = SpeechClient.create()) {\n\n // Configure request with local raw PCM audio\n RecognitionConfig recConfig =\n RecognitionConfig.newBuilder()\n .setEncoding(AudioEncoding.LINEAR16)\n .setLanguageCode(\"en-US\")\n .setSampleRateHertz(16000)\n .setEnableAutomaticPunctuation(true)\n .build();\n\n // Build the streaming config with the audio config\n StreamingRecognitionConfig config =\n StreamingRecognitionConfig.newBuilder().setConfig(recConfig).build();\n\n class ResponseApiStreamingObserver\u003cT\u003e implements ApiStreamObserver\u003cT\u003e {\n private final SettableFuture\u003cList\u003cT\u003e\u003e future = SettableFuture.create();\n private final List\u003cT\u003e messages = new java.util.ArrayList\u003cT\u003e();\n\n @Override\n public void onNext(T message) {\n messages.add(message);\n }\n\n @Override\n public void onError(Throwable t) {\n future.setException(t);\n }\n\n @Override\n public void onCompleted() {\n future.set(messages);\n }\n\n // Returns the SettableFuture object to get received messages / exceptions.\n public SettableFuture\u003cList\u003cT\u003e\u003e future() {\n return future;\n }\n }\n\n ResponseApiStreamingObserver\u003cStreamingRecognizeResponse\u003e responseObserver =\n new ResponseApiStreamingObserver\u003c\u003e();\n\n BidiStreamingCallable\u003cStreamingRecognizeRequest, StreamingRecognizeResponse\u003e callable =\n speech.streamingRecognizeCallable();\n\n ApiStreamObserver\u003cStreamingRecognizeRequest\u003e requestObserver =\n callable.bidiStreamingCall(responseObserver);\n\n // The first request must **only** contain the audio configuration:\n requestObserver.onNext(\n StreamingRecognizeRequest.newBuilder().setStreamingConfig(config).build());\n\n // Subsequent requests must **only** contain the audio data.\n requestObserver.onNext(\n StreamingRecognizeRequest.newBuilder()\n .setAudioContent(ByteString.copyFrom(data))\n .build());\n\n // Mark transmission as completed after sending the data.\n requestObserver.onCompleted();\n\n List\u003cStreamingRecognizeResponse\u003e responses = responseObserver.future().get();\n\n for (StreamingRecognizeResponse response : responses) {\n // For streaming recognize, the results list has one is_final result (if available) followed\n // by a number of in-progress results (if iterim_results is true) for subsequent utterances.\n // Just print the first result here.\n StreamingRecognitionResult result = response.getResultsList().get(0);\n // There can be several alternative transcripts for a given chunk of speech. Just use the\n // first (most likely) one here.\n SpeechRecognitionAlternative alternative = result.getAlternativesList().get(0);\n System.out.printf(\"Transcript : %s\\n\", alternative.getTranscript());\n }\n }\n }\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=speech)."]]