Написание собственного плагина TinyMCE с использованием логики на основе Java - PullRequest
0 голосов
/ 22 мая 2018

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

Любая помощь, независимо от того, насколько минимальной будет высоко ценится

1 Ответ

0 голосов
/ 22 мая 2018

Java и javascript - это очень разные языки, и вы редко можете использовать библиотеки java из javascript, если вы не установите сервер, который будет запускать библиотеку java и связываться с ней по сети.Javascript в браузере имеет очень ограниченные возможности для взаимодействия с другим программным обеспечением.Для вашей задачи вы можете использовать библиотеку распознавания речи javascript, например

Chrome Web Speech API - работает только в Chrome

Dictate.js -работает и в Firefox, но где-то нужен сервер.Все равно не будет работать в некоторых браузерах.

Вы можете искать другие.

...