这是关于开源软件项目的编程模式的理论问题。
我们正在分发开源项目Araword(用Java编写,但这部分相关),我们想要添加离线的文字转语音功能,就像现在它一样。仅使用谷歌的在线TTS。
该软件跨平台运行。因此,根据底层操作系统,用户必须能够在与平台相关的TTS实施或跨平台(Google)实施之间做出选择。
我们希望以优雅的方式在每个TTS实现之间切换,但有哪些最佳实践。
1)我在wikipedia上听说过Factory Method Pattern:
http://en.wikipedia.org/wiki/Factory_method_pattern
2)IoC /服务位置模式:
http://en.wikipedia.org/wiki/Service_locator_pattern
我很感激任何建议。
答案 0 :(得分:1)
如果您想切换到系统的TTS,请执行以下操作:
或者,使用跨平台的FreeTTS库,然后实现(请注意声音质量较低)。
FreeTTS项目可以在这里找到: