如何通过Gradle从Jar包为MaryTTS添加法语新语音?
如何将MaryTTS法语语音包从Jar包添加到项目中
步骤1:确认依赖配置正确
确保你的build.gradle中已经配置了本地libs目录的依赖扫描,保证项目能加载marytts-lang-fr-5.2.jar:
dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) // 其他MaryTTS核心依赖(若未通过libs目录引入) }
同步Gradle项目,让Jar包被纳入项目的classpath。
步骤2:让MaryTTS自动加载法语语音
MaryTTS会通过SPI机制自动扫描classpath中的语音包,无需手动注册。你可以在代码里验证是否加载成功:
import marytts.LocalMaryInterface; import marytts.MaryInterface; import java.util.List; public class SpeechTest { public static void main(String[] args) throws Exception { // 初始化MaryTTS实例,自动扫描加载所有可用语音 MaryInterface marytts = new LocalMaryInterface(); // 打印所有可用语音,确认法语语音是否在列 List<String> availableVoices = marytts.getAvailableVoices(); System.out.println("可用语音列表:" + availableVoices); // 设置使用法语语音(可指定具体语音名,比如"fr-FR",根据打印结果调整) marytts.setVoice("fr"); } }
步骤3:测试法语语音合成
添加测试代码,生成并播放法语语音,验证功能正常:
import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Clip; // 接续上面的代码 String frenchText = "Bonjour tout le monde, bienvenue dans MaryTTS !"; AudioInputStream audio = marytts.generateAudio(frenchText); // 播放合成的语音 Clip clip = AudioSystem.getClip(); clip.open(audio); clip.start(); // 等待播放完成 Thread.sleep(clip.getMicrosecondLength() / 1000); clip.close();
常见问题排查
- 确认语音包版本与MaryTTS核心版本完全一致(均为5.2),版本不匹配会导致语音无法加载。
- 如果未自动扫描到法语语音,检查Jar包是否完整放入libs目录,Gradle同步是否执行成功。
内容的提问来源于stack exchange,提问作者Bussiere
相关产品推荐
相关产品推荐

