javascript使用基于java的逻辑编写TinyMCE自定义插件
我是一个插件开发新手,关于我正在从事的一个学校项目,我需要开发一个语音转换功能,允许用户将输入内容输入文本编辑器,在这种情况下,我只能使用TinyMCE编辑器。我得到了一个开发良好的java语音识别库,名为CMU Sphinx-sphinx4
现在,我的问题来了。Sphinx4是一个java库,它包含创建插件所需的所有逻辑。但是对于TinyMCE,我只能用javascript编写插件。我试着编写一个简单的演示,但没有成功地让插件工作。以下是代码片段
1.索引。html
<!DOCTYPE html>
<html>
<head>
<script src="//cdn.tinymce.com/4/tinymce.min.js"></script>
<script>
tinymce.init({
selector:'textarea',
plugins: 'voiceDictation',
toolbar: 'voiceDictation'
});
</script>
</head>
<body>
<textarea>Testing voiceDictation</textarea>
</body>
</html>
口述。爪哇
package javapackage; import edu.cmu.sphinx.api.Configuration; import edu.cmu.sphinx.api.LiveSpeechRecognizer; import java.io.IOException; public class Dictate { public static LiveSpeechRecognizer dictate() throws IOException { Configuration configuration = new Configuration(); configuration.setAcousticModelPath ("resource:/edu/cmu/sphinx/models/en-us/en-us"); configuration.setDictionaryPath("resource:/edu/cmu/sphinx/models/en-us/cmudict-en-us.dict"); configuration.setLanguageModelPath("resource:/edu/cmu/sphinx/models/en-us/en-us.lm.bin"); LiveSpeechRecognizer recognizer = new LiveSpeechRecognizer(configuration); recognizer.startRecognition(true); return recognizer; } }
插件。js
import _ from 'lodash'; const plugin = (editor) => { editor.addButton('voiceDictation', { text: 'voiceDictation', icon: false, onclick: () => { var recognizer = Packages.javapackage.Dictate.dictate; var result = recognizer.getHypothesis(); editor.windowManager.open({ title: 'voiceDictation plugin', body: [ { type: 'textbox', name: {result} } ], }) } }) }; export default plugin;
索引。js
import plugin from './plugin'; tinymce.PluginManager.add('voiceDictation', plugin);
任何帮助,无论多么微不足道,都将不胜感激
# 1 楼答案
Java和javascript是非常不同的语言,您很少可以从javascript使用Java库,除非您设置一个运行Java库的服务器,并通过网络与它联系。浏览器中的Javascript与其他软件交互的能力非常有限。例如,对于您的任务,您可以使用javascript语音识别库
Chrome Web Speech API-仅在Chrome中有效
Dictate.js也适用于Firefox,但需要在某个地方安装服务器。在某些浏览器中无论如何都不起作用
你可以搜索其他人