Java текст в речь (Spring Boot)
Я работаю над проектом, где мне нужно сгенерировать капчу с SpringBoot. Я хочу иметь функцию "text to speech", и звуковой файл должен быть создан с помощью SpringBoot (иначе это было бы огромной проблемой безопасности).
Я сгенерировал изображение капчи и преобразовал его в Base64String, чтобы отправить его клиенту. Я использовал SimpleCaptcha для этого.
Моя проблема: я не могу сгенерировать аудиофайл с той же случайной строкой в SimpleAudio. Он всегда генерирует новый. Сейчас я ищу решение - я просто хочу создать аудиофайл с той же строкой, что и на изображении.
Вот мой код:
Это изображение с картинки:
@RestController
public class MyCaptchaController {
private String Captcha_Text;
TextProducer tp;
MyCaptcha cap = new MyCaptcha();
@GetMapping(value = "/getNewCaptcha")
public @ResponseBody MyCaptcha getNewCaptcha() throws IOException
{
Captcha captcha = new Captcha.Builder(200, 70)
.addText()
.addBackground(new FlatColorBackgroundProducer(new Color(231, 235, 240)))
.addNoise()
.addNoise()
.build(); // Required! Always!
System.out.println(captcha.getAnswer());
Captcha_Text = captcha.getAnswer();
String base64Captcha = imgToBase64String(captcha.getImage(), "jpeg");
System.out.println("Bild: " + base64Captcha);
cap.setText(base64Captcha);
cap.setKlartext(Captcha_Text);
return cap;
}
и это должен быть звук (не работает):
@RequestMapping(value = "/recfile", method = RequestMethod.GET,
produces = { MediaType.APPLICATION_OCTET_STREAM_VALUE })
public HttpEntity<byte[]> downloadRecipientFile(
ModelMap model, HttpServletResponse response) throws IOException,
ServletException {
AudioCaptcha ac = new AudioCaptcha.Builder()
.addAnswer()
.addNoise()
.build();
CaptchaServletUtil.writeAudio(response, ac.getChallenge());
HttpHeaders header = new HttpHeaders();
header.setContentType(new MediaType("audio", "vnd.wav"));
return new HttpEntity<byte[]>(ac.getChallenge().asByteArray(), header);
}