MTrans 项目介绍
MTrans 项目,正式名称为多源翻译(Multi-source Translation,简称 MTrans),是一个专注于集成多种主流在线翻译及语音合成(TTS)功能的轻量级服务。通过将HTTP请求发送到支持的在线目标服务器,MTrans 项目能获取并解析返回的翻译及语音结果,从而为用户提供便利。值得注意的是,该项目是免费开源的,为开发者提供了一个可以进行二次开发的基础。
支持的翻译源和语种
MTrans 项目目前支持以下几个翻译源,各大翻译源都支持从中文、英语、日语等多种语言的互译功能:
翻译源 | 支持语种 |
---|---|
百度翻译 | 中文、英语、日语、韩语、法语、俄语、德语 |
有道翻译 | 中文、英语、日语、韩语、法语、俄语 |
谷歌翻译 | 中文、英语、日语、韩语、法语、俄语、德语 |
腾讯翻译君 | 中文、英语、日语、韩语、法语、俄语、德语 |
欧米翻译 | 中文、英语 |
TryCan | 中文、英语 |
金山爱词霸 | 中文、英语、日语、韩语、法语、德语 |
搜狗翻译 | 中文、英语、日语、韩语、法语、俄语、德语 |
支持的语音合成(TTS)源
MTrans 项目同时也支持几个主要的TTS服务,用于将文本转换为语音:
TTS 源 | 支持语种 |
---|---|
百度 TTS | 中文、英语、日语、韩语、法语、俄语、德语、泰语 |
有道 TTS | 英语、日语、韩语、法语 |
谷歌 TTS | 中文、英语、日语、韩语、法语、俄语、德语 |
腾讯 TTS | 中文、英语、日语、韩语 |
搜狗 TTS | 中文、英语 |
快速开始
环境配置
MTrans 项目使用 IDEA 和 Maven 进行开发,开发者需要在项目的 pom.xml
中添加相关的依赖:
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.5</version>
</dependency>
最小实例
以下为最小翻译和语音合成示例:
-
翻译示例:
import com.swjtu.lang.LANG; import com.swjtu.querier.Querier; import com.swjtu.trans.AbstractTranslator; import com.swjtu.trans.impl.GoogleTranslator; import java.util.List; public class Test { public static void main(String[] args) { Querier<AbstractTranslator> querierTrans = new Querier<>(); querierTrans.setParams(LANG.ZH, LANG.EN, "如果这都不算爱,我有什么好悲哀!"); querierTrans.attach(new GoogleTranslator()); List<String> result = querierTrans.execute(); for (String str : result) { System.out.println(str); } } }
-
语音合成示例:
import com.swjtu.lang.LANG; import com.swjtu.querier.Querier; import com.swjtu.tts.AbstractTTS; import com.swjtu.tts.impl.BaiduTTS; import java.util.List; public class Test { public static void main(String[] args) { Querier<AbstractTTS> querierTTS = new Querier<>(); querierTTS.setParams(LANG.EN, "To be or not to be, that is a question."); querierTTS.attach(new BaiduTTS()); List<String> result = querierTTS.execute(); for (String str : result) { System.out.println(str); } } }
MTrans 使用说明
包和类
MTrans 项目主要由以下几个包和类组成:
com.swjtu.lang
: 包含LANG
枚举,用于定义支持的语种。com.swjtu.util
: 工具包。com.swjtu.http
: 定义HTTP方法接口和抽象类。com.swjtu.querier
: 定义查询器(Querier
)类。com.swjtu.trans
: 包含抽象翻译器类。com.swjtu.trans.impl
: 实现各个翻译器实体类。com.swjtu.tts
: 包含TTS抽象类。com.swjtu.tts.impl
: 实现各个TTS实体类。
如何扩展?
MTrans 项目支持并提供了扩展的可能性,如需扩展语种、翻译器或者TTS,开发者可以按照以下步骤进行:
-
扩展语种:通过在
LANG
枚举中添加语言自定义代号,并更新类中的语言支持映射。 -
扩展翻译器:继承
AbstractTranslator
抽象类,添加新的翻译器并实现其抽象方法。 -
扩展 TTS:继承
AbstractTTS
抽象类,定义新的TTS类并实现其抽象方法。
总结
MTrans 项目为用户提供了一个整合多种在线翻译和语音合成的开源服务,便于用户实现多语言的灵活转换和TTS应用。项目具有良好的扩展性,能够满足用户不同的定制需求。对于开发者而言,MTrans 的特性使其成为一个可扩展的框架,有助于快速开发多语言支持的应用程序。