JAVA JNA 讯飞离线语音合成
SDK下载
URL:https://www.xfyun.cn/sdk/dispatcher windows离线语音SDK包下载
JNA MAVEN依赖
<!-- https://mvnrepository.com/artifact/net.java.dev.jna/jna -->
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>5.5.0</version>
</dependency>
JAVA代码
package com.xunfei.tts;
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Pointer;
import com.sun.jna.ptr.IntByReference;
import java.io.IOException;
import java.io.RandomAccessFile;
/**
*@program: tts
*@description:
*@author: liqiaozong
*@create: 2019-12-31 08:29
*/
public class XunFeiSpeech {
public interface MscLibrary extends Library {
// DLL文件默认路径为项目根目录,若DLL文件存放在项目外,请使用绝对路径
MscLibrary INSTANCE = Native.load("D:\\temp\\tts\\msc-lib\\msc_x64", MscLibrary.class);
int MSPLogin(String username, String password, String param);
int MSPLogout();
String QTTSSessionBegin(String params, IntByReference errorCode);
int QTTSTextPut(String sessionID, String textString, int textLen, String params);
Pointer QTTSAudioGet(String sessionID, IntByReference audioLen, IntByReference synthStatus, IntByReference errorCode);
int QTTSSessionEnd(String sessionID, String hints);
}
public static void main(String[] args) {
//登录参数,appid与msc库绑定,请勿随意改动
String login_params = "appid = 5e0*****, work_dir = .";
//合成参数:tts_res_path我这里用了绝对路径
String session_begin_params = "engine_type = local, voice_name = xiaoyan, text_encoding = UTF-8, tts_res_path = fo|D:\\temp\\tts\\msc-lib\\msc\\res\\tts\\xiaoyan.jet;fo|D:\\temp\\tts\\msc-lib\\msc\\res\\tts\\common.jet, sample_rate = 16000, speed = 50, volume = 50, pitch = 50, rdn = 2";
//合成的语音文件名称
String filename = "tts_sample.wav";
//合成文本
String text = "亲爱的用户,您好,这是一个语音合成示例,感谢您对科大讯飞语音技术的支持!科大讯飞是亚太地区最大的语音上市公司,股票代码:002230";
String sessionId = null;
RandomAccessFile raf