当前位置: 首页 > wzjs >正文

寻找网站建设 网站外包搭建网站工具

寻找网站建设 网站外包,搭建网站工具,免费的求职简历模板网站,网站建设外包价格对象存储服务 OSS 对应 Azure Blob Storage语音识别 ASR 对应 Azure Speech-to-Text语音合成 TTS 对应 Azure Text-to-Speech上传..mp3文件或者上传OSS地址 返回音频的文字示例demo依赖<dependencies><dependency><groupId>org.springframework.boot…

对象存储服务 OSS 对应    Azure Blob Storage

语音识别 ASR 对应   Azure Speech-to-Text

语音合成 TTS 对应   Azure Text-to-Speech

上传..mp3文件或者上传OSS地址  返回音频的文字示例demo

依赖

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--   microsoft ASR     --><dependency><groupId>com.microsoft.cognitiveservices.speech</groupId><artifactId>client-sdk</artifactId><version>1.43.0</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>io.projectreactor</groupId><artifactId>reactor-test</artifactId><scope>test</scope></dependency></dependencies>

代码    在application.properties或者yaml中配置key和endpoint

package com.example.microsoftasr.controller;import com.microsoft.cognitiveservices.speech.*;
import com.microsoft.cognitiveservices.speech.audio.AudioConfig;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;import java.io.File;
import java.net.URI;
import java.nio.file.Files;@RestController
@RequestMapping("/asr")
public class TestController {@Value("${azure.speech.key}")private String speechKey;@Value("${azure.speech.endpoint}")private String speechEndpoint;@GetMapping("/hello")public String test() {return "Hello World";}@PostMapping("/recognize")public String recognize(@RequestParam(value = "file", required = false) MultipartFile file,@RequestParam(value = "url", required = false) String ossUrl) {if ((file == null || file.isEmpty()) && (ossUrl == null || ossUrl.isBlank())) {return "未提供音频文件或音频地址";}File tempInput = null;File tempWav = null;try {// 1. 保存临时原始音频if (file != null && !file.isEmpty()) {String suffix = getSuffix(file.getOriginalFilename());tempInput = File.createTempFile("audio-input-", "." + suffix);file.transferTo(tempInput);} else {String suffix = getSuffix(ossUrl);tempInput = File.createTempFile("audio-input-", "." + suffix);try (var in = new java.net.URL(ossUrl).openStream()) {Files.copy(in, tempInput.toPath(), java.nio.file.StandardCopyOption.REPLACE_EXISTING);}}// 2. 转换成 WAV(16kHz 单声道)tempWav = File.createTempFile("audio-output-", ".wav");if (!getSuffix(tempInput.getName()).equalsIgnoreCase("wav")) {ProcessBuilder pb = new ProcessBuilder("F:\\ffmpeg-7.1.1-full_build\\ffmpeg-7.1.1-full_build\\bin\\ffmpeg.exe", "-y","-i", tempInput.getAbsolutePath(),"-ar", "16000","-ac", "1",tempWav.getAbsolutePath());Process process = pb.inheritIO().start();int exitCode = process.waitFor();if (exitCode != 0) return "ffmpeg 转换失败,exitCode=" + exitCode;} else {Files.copy(tempInput.toPath(), tempWav.toPath(), java.nio.file.StandardCopyOption.REPLACE_EXISTING);}// 3. 调用微软 ASR 识别SpeechConfig speechConfig = SpeechConfig.fromEndpoint(new URI(speechEndpoint), speechKey);speechConfig.setSpeechRecognitionLanguage("zh-CN");try (AudioConfig audioConfig = AudioConfig.fromWavFileInput(tempWav.getAbsolutePath());SpeechRecognizer recognizer = new SpeechRecognizer(speechConfig, audioConfig)) {SpeechRecognitionResult result = recognizer.recognizeOnceAsync().get();if (result.getReason() == ResultReason.RecognizedSpeech) {return result.getText();} else {return "识别失败: " + result.getReason();}}} catch (Exception e) {e.printStackTrace();return "识别异常: " + e.getMessage();} finally {try {if (tempInput != null) Files.deleteIfExists(tempInput.toPath());if (tempWav != null) Files.deleteIfExists(tempWav.toPath());} catch (Exception ex) {ex.printStackTrace();}}}private String getSuffix(String filenameOrUrl) {if (filenameOrUrl == null || !filenameOrUrl.contains(".")) return "tmp";return filenameOrUrl.substring(filenameOrUrl.lastIndexOf('.') + 1);}}

http://www.dtcms.com/wzjs/481736.html

相关文章:

  • 松江做网站需要多少钱最好的搜索引擎
  • 台式机做网站服务器seo域名如何优化
  • 网站网络安全怎么做站长统计免费下载
  • 开源b2b网站源码建设seo基础知识包括什么
  • 怎么注册自己网站吗互动营销经典案例
  • 携程网站 建设平台分析平台交易网
  • 12306网站是谁做的seo优化方式
  • 重庆网站推广营销公司宣传网站制作
  • 程序源码网站电商网站如何避免客户信息泄露
  • 商务网站建设 模板关键词优化推广排名
  • 武汉比较大的做网站的公司广告公司营销策划方案
  • 做产品的淘宝客网站平台关键词排名优化
  • 好的做外贸的网站有哪些广告软文外链平台
  • 公司的网站建设哪家比较好环球资源网站网址
  • 农村电商网站建设方案百度推广需要什么条件
  • wordpress网站收录插件代哥seo
  • 福清市建设局官方网站网站排名软件利搜
  • 少儿编程加盟官网百度seo排名规则
  • 网站模版如何去除title版权信息关键词批量调词 软件
  • 杭州 商城网站开发seo入门基础知识
  • 建设报名系统网站可靠吗seo怎么学在哪里学
  • wordpress不修改数据库更换域名seo研究中心官网
  • 建设虚拟网站电商sem是什么意思
  • 手机网站推荐大全巧克力软文范例200字
  • 公司门户app下载成都网站快速排名优化
  • 兴义网站建设网站建设网络黄页推广软件哪个好用
  • 公司商城网站建设c++培训班学费一般多少
  • 天津市城市建设学校官方网站百度权重查询工具
  • 做乡村旅游的网站网站运营一个月多少钱
  • 做微网站 主机 域名网站seo优化推广外包