【Java音频操作】调用有道词典语音接口,生成单词MP3文件,支持自定义重复次数

参考博客:Java爬虫-爬取四级词汇网站音频


运行效果

根据想要拼接的单词,生成一个单词朗读的mp3文件,可以自定义每个单词朗读时的重复次数。

代码思路:

  • 先把要拼接的单词放进一个String数组中
  • 然后遍历这个数组,用(伪)爬虫下载每一个单词的音频文件
  • 最后再把这些音频文件拼接起来,生成mp3文件 ↓
    在这里插入图片描述

关于:有道词典语音接口

基于有道翻译的公共api可以制作自己的翻译app,前几天有这个想法,发现没有办法实现朗读功能,搜索了一下找到了这个接口,解决了这个问题。非常简单,直接取网络地址进行播放就可以了,相当于播放一个音频文件,解析速度挺快。

美音:http://dict.youdao.com/dictvoice?type=0&audio=hello
英音:http://dict.youdao.com/dictvoice?type=1&audio=hello

api仅有两个参数,就是发音类型和单词,在audio=后面加上单词就ok了,type=0为美国发音,type=1为英国发音,做个程序自己用,几乎还可以吧。下面附上一个"hello"的测试,看下效果吧,第一个为美音,第二个为英音


关于:java播放mp3格式音频文件

1、下载第三方jar包,网址:http://www.javazoom.net/javalayer/javalayer.html
在这里插入图片描述
2、下载完成之后解压提取jl1.0.0.1.jar
在这里插入图片描述
3、在eclipse的Java Build Path中添加jl1.0.0.1.jar
在这里插入图片描述
4、播放MP3文件的源代码(参考使用)

package com.lt.music;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;

import javazoom.jl.decoder.JavaLayerException;
import javazoom.jl.player.*;
/***
 - 音乐播放器类
 - @author lt
 - time 2016-7-5
 */
public class AudioPlayer{
   
    Player player;
    File music;
    //构造方法  参数是一个.mp3音频文件
    public AudioPlayer(File file) {
   
        this.music = file;
    }
    //播放方法
    public void play() throws FileNotFoundException, JavaLayerException {
   
        
            BufferedInputStream buffer = new BufferedInputStream(new FileInputStream(music));
            player = new Player(buffer);
            player.play();
    }
}

关于:从四级听力网站上下载MP3的代码(参考使用)

主程序类

package top.chen.dogwood;
 
import java.io.IOException;
import java.net.MalformedURLException;
 
/**
 * 爬取指定链接的一组MP3 文件
 * 
 * 放入指定的目录中
 * 
 * @author Geek
 * 
 */
public class Application {
   
	public static void main(String[] args) throws MalformedURLException,
			IOException {
   
		String base = 	"http://download.dogwood.com.cn/online/4jlxbx/";
		String[] strings = new String[35] ;
		for (int i = 1; i <= 35; i++) {
   
			strings[i-1] = base+String.format("%02d", i)+".mp3";
		}
		DownloadUtils downloadUtils  = new DownloadUtils(strings,"mp3","E:\\360Downloads\\TempFile");
		try {
   
			downloadUtils.httpDownload();
		} catch (Exception e) {
   
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
}

下载工具类

package top.chen.dogwood;
 
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
 
public class DownloadUtils {
   
	// 目标链接字符串
	private String[] urlString;
	// 目标文件的格式
	private String targetType;
	// 存放文件路径
	private File rootDir;
 
	public String[
A: 微信小程序做单词读音功能的方法: 1. 使用第三方API:可以使用第三方API获取单词发音,并在小程序中进行调用。例如,可以使用有道词典API调用音频模块。 2. 采用本地语音合成:通过使用微信小程序开放的TTS(Text To Speech)能力,利用本地的语音合成技术对单词进行转换为音频。这种方法的优点是速度较快,可以在离线状态下使用,并且可以自定义发音效果。 具体实现: 1)使用第三方API: 使用有道词典API调用音频模块。通过向API发送请求获取单词发音,并解析返回的数据来实现单词读音的功能。代码示例: //发送请求获取音频 wx.request({ url: 'http://dict.youdao.com/dictvoice?type=2&audio=' + word, success: function(res) { var filePath = res.tempFilePath;//音频文件路径 //播放音频 wx.playVoice({ filePath: filePath, success: function() { //播放成功 }, fail: function() { //播放失败 } }); }, fail: function() { //请求失败 } }); 2)采用本地语音合成: 通过调用微信小程序开放的TTS(Text To Speech)能力,将单词转换为音频。代码示例: //调用TTS能力生成音频 wx.getRecorderManager().start({ format: 'mp3', success: function(res) { var filePath = res.tempFilePath;//音频文件路径 //播放音频 wx.playVoice({ filePath: filePath, success: function() { //播放成功 }, fail: function() { //播放失败 } }); }, fail: function() { //语音合成失败 } }); 以上是两种实现微信小程序做单词读音功能的方法和代码示例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值