|
2 | 2 |
|
3 | 3 | import com.google.protobuf.ByteString;
|
4 | 4 | import io.grpc.*;
|
| 5 | +import io.grpc.netty.shaded.io.netty.util.internal.StringUtil; |
5 | 6 | import io.grpc.stub.MetadataUtils;
|
6 | 7 |
|
7 | 8 | import java.util.concurrent.TimeUnit;
|
@@ -47,25 +48,37 @@ public SpeechRecognitionResult transcribeAudioBytes(ByteString audioBytes, Langu
|
47 | 48 | }
|
48 | 49 | }
|
49 | 50 |
|
50 |
| - public static ByteString getAudioBytes() { |
| 51 | + public static ByteString getAudioBytes(String file) { |
51 | 52 | AudioFiles audioFiles = new AudioFiles();
|
52 |
| - String file = "/Users/nireshkumarr/Documents/ekstep/speech-recognition-open-api/examples/python/speech-recognition/changed.wav"; |
53 | 53 | byte[] data2 = audioFiles.readAudioFileData(file);
|
54 | 54 | ByteString byteString = ByteString.copyFrom(data2);
|
55 | 55 | return byteString;
|
56 | 56 | }
|
57 | 57 |
|
| 58 | + private PunctuateResponse getPunctuate(String text, String language) { |
| 59 | + return blockingStub.punctuate(PunctuateRequest.newBuilder().setLanguage(language).clearEnabledItn().setText(text).build()); |
| 60 | + } |
| 61 | + |
58 | 62 | public static void main(String[] args) throws Exception {
|
59 |
| - String target = "test-model-api.vakyansh.in:50051"; |
| 63 | + String targetGRPCServer = "<GRPC Server>"; |
| 64 | + String audioFile = "<wav audio file path>"; |
| 65 | + Language.LanguageCode languageCode = Language.LanguageCode.hi; |
60 | 66 |
|
61 |
| - ManagedChannel channel = ManagedChannelBuilder.forTarget(target) |
| 67 | + ManagedChannel channel = ManagedChannelBuilder.forTarget(targetGRPCServer) |
62 | 68 | .usePlaintext()
|
63 | 69 | .build();
|
64 | 70 | try {
|
65 | 71 | SpeechRecognitionClient client = new SpeechRecognitionClient(channel);
|
66 |
| - ByteString audioBytes = getAudioBytes(); |
67 |
| - SpeechRecognitionResult result = client.transcribeAudioBytes(audioBytes, Language.LanguageCode.en, RecognitionConfig.AudioFormat.wav, RecognitionConfig.TranscriptionFormatEnum.transcript); |
68 |
| - System.out.println(result.toString()); |
| 72 | + ByteString audioBytes = getAudioBytes(audioFile); |
| 73 | + SpeechRecognitionResult result = client.transcribeAudioBytes(audioBytes, languageCode, RecognitionConfig.AudioFormat.wav, RecognitionConfig.TranscriptionFormatEnum.transcript); |
| 74 | + System.out.println("#### Output ####"); |
| 75 | + for (SpeechRecognitionResult.Output out : result.getOutputList()) { |
| 76 | + if (!StringUtil.isNullOrEmpty(out.getSource())) { |
| 77 | + System.out.println("Text: " + out.getSource()); |
| 78 | + System.out.println("Punctuated Text: " + client.getPunctuate(out.getSource(), languageCode.name()).getText()); |
| 79 | + } |
| 80 | + } |
| 81 | + |
69 | 82 |
|
70 | 83 | } finally {
|
71 | 84 | channel.shutdownNow().awaitTermination(5, TimeUnit.SECONDS);
|
|
0 commit comments