구두점을 적용한 스트리밍 음성 인식
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
원시 PCM 오디오 데이터에서 스트리밍 음성 인식을 수행합니다.
코드 샘플
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 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)."]]