各大公司都开源了语音识别api,然而却很多限制。例如文件格式必须是pcm,每次的时长不能超过60s。当然也有一些商业的,例如讯飞。为了突破这些限制,我随手写了一个小工具,可以对长音频进行识别了。
原理很简单,就是通过ffmpeg对音频进行切割,转换,然后调用api进行识别。一百多行代码就搞定了。详情请参阅代码。希望对你有用。源码已经放在github https://github.com/kenro/Long-Speech-To-Text-for-Java
[code]
import java.io.File;
import java.util.Map;
import javax.sound.sampled.AudioFileFormat;
import javax.sound.sampled.AudioSystem;
import org.json.JSONObject;
import org.tritonus.share.sampled.file.TAudioFileFormat;
import com.baidu.aip.speech.AipSpeech;
public class SpeechToText {
//设置APPID/AK/SK
public static final String APP_ID = "11106696";
public static final String API_KEY = "Zg2KO0RxOXSnrw59mSGA6air";
public static final String SECRET_KEY = "GW7xtLK936hMYKvf00i7vFk7tNNnGGNw";
//自己下载ffmpeg
publi