Я новичок в разработке плагинов, и что касается школьного проекта, над которым я работаю, мне необходимо разработать функцию преобразования голоса в речь, которая позволяет пользователю произносить ввод в текстовый редактор, в этом случае я ограничен Редактор TinyMCE. Мне дали для работы уже хорошо разработанную библиотеку распознавания речи на Java под названием CMU Sphinx-sphinx4.
Итак, теперь моя проблема. Sphinx4 — это java-библиотека, содержащая всю логику, которую мне нужно использовать для создания плагина. Но с TinyMCE я не могу писать плагин на javascript. Я попытался написать простую демонстрацию, но безуспешно заставить плагин работать. Вот фрагменты кода
1. Index.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>
Диктовать.java
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;
Index.js
import plugin from './plugin'; tinymce.PluginManager.add('voiceDictation', plugin);
Любая помощь, какой бы минимальной она ни была, будет принята с благодарностью