Я новичок в разработке плагинов, и в отношении школьного проекта, над которым я работаю, мне необходимо разработать функцию преобразования речи в речь, которая позволяет пользователю произносить ввод в текстовом редакторе, в данном случае яограничен редактором 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>
Dictate.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;
}
}
plugin.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);
Любая помощь, независимо от того, насколько минимальной будет высоко ценится