From 505a028036d139338c8037bc52495928db29adfe Mon Sep 17 00:00:00 2001 From: caolin <1149034574@qq.com> Date: Sat, 19 Aug 2023 13:10:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E5=AD=97=E8=BD=AC=E8=AF=AD=E9=9F=B3?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/controller/VoiceController.java | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 src/main/java/com/jwl/driver/server/controller/VoiceController.java diff --git a/src/main/java/com/jwl/driver/server/controller/VoiceController.java b/src/main/java/com/jwl/driver/server/controller/VoiceController.java new file mode 100644 index 0000000..baaaf7d --- /dev/null +++ b/src/main/java/com/jwl/driver/server/controller/VoiceController.java @@ -0,0 +1,57 @@ +package com.jwl.driver.server.controller; + + +import com.jwl.driver.server.dto.LoginUserDto; +import com.jwl.driver.server.response.BaseResponse; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import javax.sound.sampled.*; +import javax.validation.Valid; +import java.io.File; +import java.io.IOException; + +/** + *
+ * 支付表 前端控制器 + *
+ * + * @author Automated procedures + * @since 2023-08-10 + */ +@RestController +@RequestMapping("/voice") +@Slf4j +public class VoiceController { + @ApiOperation("文字转语音") + @GetMapping("/contentToAudio") + public void contentToAudio(@RequestParam String content) { + log.info("文字转语音======>content:{}", content); + final AudioFormat format = new AudioFormat(44100, 16, 1, true, false); + + DataLine.Info dataLineInfo = new DataLine.Info(TargetDataLine.class, format); + + if (!AudioSystem.isLineSupported(dataLineInfo)) { + return; + } + + TargetDataLine targetDataLine; + try { + targetDataLine = (TargetDataLine) AudioSystem.getLine(dataLineInfo); + targetDataLine.open(format); + targetDataLine.start(); + + // Record audio + AudioInputStream audioInputStream = new AudioInputStream(targetDataLine); + + // Save audio to file + File audioFile = new File("recorded_audio.wav"); + AudioSystem.write(audioInputStream, AudioFileFormat.Type.WAVE, audioFile); + targetDataLine.close(); + } catch (LineUnavailableException | IOException e) { + e.printStackTrace(); + } + } +}