需要设置环境变量(自行解决实在无法解决的私信我)
依赖
translation 1.几版本没有v3包 2.几版本有包含v2 v2用2.几的版本会报错
<!-- 语音识别 --> <dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-speech</artifactId> <version>0.84.0-beta</version> </dependency> <!-- translation --> <dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-translate</artifactId> <version>1.3.1</version> </dependency>
代码 translation版本是v2 v3和语音识别依赖会冲突
主要:电脑本机要可以访问外网不然无法响应,vpn软件翻天没用
/** * 语音识别 异步长语音 * @param file 识别内容 * @param sourceLanguage 识别语言(不是必须) * @param languageCode 目标语言 * @return * @throws IOException * @throws InterruptedException * @throws ExecutionException */ @PostMapping("/translationSpeech") public Object translationSpeech(@RequestParam("file") MultipartFile file, @RequestParam(value = "sourceLanguage",defaultValue = "en") String sourceLanguage, @RequestParam(value = "languageCode",defaultValue = "cmn-Hans-CN") String languageCode) throws IOException, InterruptedException, ExecutionException { //实例化客户端 try (SpeechClient speechClient = SpeechClient.create()){ if (null == file | 0 == file.getBytes().length | file.isEmpty()){ return "请上传文件"; } byte[] data = file.getBytes(); ByteString audioBytes = ByteString.copyFrom(data); //生成识别请求 自动识别语音语音 RecognitionConfig config = RecognitionConfig.newBuilder() .setEncoding(RecognitionConfig.AudioEncoding.LINEAR16) // .setSampleRateHertz(16000) .setLanguageCode(languageCode) .build(); RecognitionAudio audio =RecognitionAudio.newBuilder() .setContent(audioBytes) .build(); //长语音 异步 OperationFuture<LongRunningRecognizeResponse, LongRunningRecognizeMetadata> response = speechClient.longRunningRecognizeAsync(config,audio); //短语音 同步 // RecognizeResponse recognize = speechClient.recognize(config, audio); // List<SpeechRecognitionResult> resultsList = recognize.getResultsList(); while (!response.isDone()){ System.out.println("正在等待服务端响应..."); Thread.sleep(1*1000); } List<SpeechRecognitionResult> results = response.get().getResultsList(); for (SpeechRecognitionResult result : results) { //有可能结果不在第一个 SpeechRecognitionAlternative alternative = result.getAlternativesList().get(0); if (alternative == null){ for (int i = 1; i <= 5; i++){ alternative = result.getAlternativesList().get(i); if (null != alternative){ break; } } } return "解析结构 :"+translationRun(alternative.getTranscript(),sourceLanguage,languageCode); } } return "无法识别该语音"; }
public Object translationRun(String text, @RequestParam(value = "sourceLanguage",defaultValue = "en") String sourceLanguage, @RequestParam(value = "targetLanguage",defaultValue = "zh-CN") String targetLanguage){ Translate translate = TranslateOptions.getDefaultInstance().getService(); Translation translation = translate.translate( text, Translate.TranslateOption.sourceLanguage(sourceLanguage), Translate.TranslateOption.targetLanguage(targetLanguage), Translate.TranslateOption.model("nmt") //模型 ); return "翻译结果 :"+translation.getTranslatedText(); }
如果要使用v3的翻译的化用下面的依赖 不然语音识别会报错
<dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-firestore</artifactId> <version>1.34.0</version> </dependency> <dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-storage</artifactId> <version>1.108.0</version> </dependency> <dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-pubsub</artifactId> <version>1.106.0</version> </dependency> <dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-compute</artifactId> <version>0.118.0-alpha</version> </dependency> <dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-vision</artifactId> <version>1.99.3</version> </dependency> <dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-translate</artifactId> <version>1.94.5</version> </dependency> <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-netty-shaded</artifactId> <version>1.29.0</version> </dependency> <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-protobuf</artifactId> <version>1.29.0</version> </dependency> <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-stub</artifactId> <version>1.29.0</version> </dependency>