vue 文字转语音mp3_一款文字转语音工具箱

本文介绍了如何在Vue项目中利用百度云的语音合成功能,将文字转换为语音MP3。文章提供了配置步骤,包括引入依赖、设置属性以及创建工具类,并提醒注意文本长度限制和HTTPS认证问题。
摘要由CSDN通过智能技术生成

写在前面:

语音合成可将计算机自己产生的、或外部输入的文字信息转变为可以听得懂的、流利的口语输出的技术。适用于手机APP、儿童故事机、智能机器人等多种应用场景。

整合

这里我们使用百度云的人工智能语音合成API,个人用户拥有一定的免费额度,基本已经够用了,在线语音合成支持丰富的SDK,基本上流行的语言都可以轻松接入。这里使用世界上最流行的语言Java。

pom.xml引入:

com.baidu.aipjava-sdk4.12.0

application.properties引入:

# ===================================# 百度人工智能,申请百度云账号并创建应用# ===================================bai-du.appId = **********bai-du.apiKey = **********bai-du.accessKeySecret = **********

BaiDuProperties.java 配置实体:

@Data@ConfigurationProperties(prefix = "bai-du")public class BaiDuProperties {    private String appId;    private String apiKey;    private String accessKeySecret;}

撸一个工具类:

/** * 百度智能AI */@Component@Configuration@EnableConfigurationProperties({BaiDuProperties.class})public class BaiDuUtils {    private BaiDuProperties baiDu;    public BaiDuUtils(BaiDuProperties baiDu) {        this.baiDu = baiDu;    }    private AipSpeech instance;    @Value("${file.path}")    private String filePath;    @PostConstruct    public void init() {        try {            FileUtil.mkdir(filePath+SystemConstant.SF_FILE_SEPARATOR+"voice");            instance = new AipSpeech(baiDu.getAppId(), baiDu.getApiKey(), baiDu.getAccessKeySecret());            // 可选:设置网络连接参数            instance.setConnectionTimeoutInMillis(2000);            instance.setSocketTimeoutInMillis(60000);        } catch (Exception e) {            e.printStackTrace();        }    }    /**     * 语音合成     * 本地测试可能会出现https认证的问题 调用一下 ignoreSsl 方法即可     * @param text 合成的文本,使用UTF-8编码,请注意文本长度必须小于1024字节     */    public String text2Voice(String text,Boolean per) {        SslUtils.ignoreSsl();        HashMap options = new HashMap<>();        if(per){            options.put("per", "3");        }else{            options.put("per", "4");        }        TtsResponse res = instance.synthesis(text, "zh", 1, options);        byte[] data = res.getData();        if (data != null) {            try {                String file = "voice"+SystemConstant.SF_FILE_SEPARATOR+UUID.randomUUID()+".mp3";                Util.writeBytesToFileSystem(data, filePath + SystemConstant.SF_FILE_SEPARATOR + file);                return file;            } catch (IOException e) {                e.printStackTrace();            }        }        return null;    }}

注意

  • 请注意文本长度必须小于1024字节
  • 本地测试可能会出现https认证的问题 调用一下 ignoreSsl 方法即可

截图

a0a2509e7c6aa0848fe148e165e63082.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值