Подтвердить что ты не робот

Распознавание речи на C или Java или PHP?

Есть ли какая-либо известная установленная структура для C или Java или PHP для приложений распознавания речи? Микрофонный аудиовход, и он распознает английские слова. Например, псевдокод:

Speech s = new Speech();
s.input(micStream);
result = s.recognise("Hello");
if (result) { printf("Matched hello"); } else { printf("No match found"); }

Последующие действия:

Скачайте это: sphinx4/1.0%20beta6/

enter image description here

  1. Добавить библиотеки

  2. Скопируйте и вставьте код:

    a) файл xml помещен где-то, который можно загрузить из кода:

    https://gist.github.com/2551321

    b) используйте это:

    package edu.cmu.sphinx.demo.hellowrld;
    import edu.cmu.sphinx.frontend.util.Microphone;
    import edu.cmu.sphinx.recognizer.Recognizer;
    import edu.cmu.sphinx.result.Result;
    import edu.cmu.sphinx.util.props.ConfigurationManager;
    import java.io.IOException;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import models.Tts;
    
    public class Speech {
    
      public static void main(String[] args) {
        ConfigurationManager cm;
    
        if (args.length > 0) {
            cm = new ConfigurationManager(args[0]);
        } else {
            ///tmp/helloworld.config.xml
            cm = new ConfigurationManager(Speech.class.getResource("speech.config.xml"));
    
        }
        Recognizer recognizer = (Recognizer) cm.lookup("recognizer");
        recognizer.allocate();
    
        Microphone microphone = (Microphone) cm.lookup("microphone");
        if (!microphone.startRecording()) {
            System.out.println("Cannot start microphone.");
            recognizer.deallocate();
            System.exit(1);
        }
    
        System.out.println("Say: (Hello | call) ( Naam | Baam | Caam | Some )");
    
        while (true) {
            System.out.println("Start speaking. Press Ctrl-C to quit.\n");
    
            Result result = recognizer.recognize();
    
            if (result != null) {
                String resultText = result.getBestFinalResultNoFiller();
                System.out.println("You said: " + resultText + '\n');
    
                    Tts ts = new Tts();
                    try {
                        ts.load();
                        ts.say("Did you said: " + resultText);
                    } catch (IOException ex) {
    
                    } 
            } else {
                System.out.println("I can't hear what you said.\n");
            }
        }
      }
    }
    
4b9b3361

Ответ 2

От просмотра этих вопросов в течение нескольких месяцев я видел, как большинство разработчиков выбиралось так:

Пользователи Windows - используют функции System.Speech.Net или Microsoft.Speech и устанавливают бесплатные распознавания, предоставляемые Microsoft. Windows 7 включает в себя полный речевой движок. Другие можно скачать бесплатно. Существует API С++ для тех же движков, что и SAPI. См. http://msdn.microsoft.com/en-us/magazine/cc163663.aspx. или http://msdn.microsoft.com/en-us/library/ms723627(v=vs.85).aspx. Дополнительные сведения о механизмах Microsoft для Windows В чем разница между System.Speech.Recognition и Microsoft.Speech.Recognition?

Лица Linux - у Sphinx есть хорошие результаты. См. http://cmusphinx.sourceforge.net/ и http://cmusphinx.sourceforge.net/wiki/ p >

Коммерческие продукты - Nuance, Loquendo, AT & T, другие

Онлайн-сервис - Нюанс, Япме, другие

Конечно, это также может быть полезно - http://en.wikipedia.org/wiki/List_of_speech_recognition_software

Существует Java-речевой API. См. Javax.speech.recognition в API Java Speech http://java.sun.com/products/java-media/speech/forDevelopers/jsapi-guide/Recognition.html. Я считаю, что вам все еще нужно найти механизм речевой почты, который поддерживает этот API. Я не думаю, что Sphinx полностью поддерживает его - http://cmusphinx.sourceforge.net/sphinx4/doc/Sphinx4-faq.html#support_jsapi

Есть много других SO quesitons: Необходимы инструменты для распознавания речи и речи для Linux

Ответ 3

Хм. Интересная тема. Много лет назад я не занимался подобными вещами, хотя много лет назад я провел довольно много времени с некоторыми (довольно базовыми) программами распознавания речи на Amiga. Это весело, но не так просто, как ваш пример псевдокода заставляет его звучать.

Для этого вам понадобится библиотека API сторонних разработчиков. (Я думаю, что можно писать свои собственные, но я не думаю, что вы как точка, где это возможно)

Доступно несколько библиотек API; Google показал несколько - вот один из результатов, которые я получил: http://en.wikipedia.org/wiki/Microsoft_Speech_API - но вам, вероятно, придется попробовать несколько, пока вы получите тот, который соответствует вашим потребностям.

Скорее всего, это будет коммерческий API, то есть вам придется заплатить за него. Могут быть некоторые версии с открытым исходным кодом (я не видел в своем беглом Googleing, но я уверен, что они существуют), но они, вероятно, будут намного сложнее использовать.

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

Различные акценты - это только начало проблемы. Пол докладчика и скорость, с которой они говорят, также влияют на способность распознавать сказанное. Люди гораздо лучше распознают речь, чем компьютеры, но даже мы боремся с некоторыми незнакомыми акцентами.

Программное обеспечение распознавания речи, как правило, должно быть обучено распознавать конкретные слова и фразы. Вы, конечно, не пытались бы сопоставлять строку, как в вашем примере; вы попросите его определить конкретную фразу, которую она обучила распознавать.

Короче говоря, это очень большое поле, которое вы, очевидно, просто погружаете в нос. Я надеюсь, что это будет хорошо для вас, но я вижу много исследований в ближайшем будущем!

Вот некоторые другие ссылки, которые могут вам помочь:

Ответ 4

Попробуйте мою библиотеку C, libsprec, которая встроена в механизм распознавания речи Google:

http://github.com/H2CO3/libsprec

Ответ 5

HTK - одна из наиболее популярных фреймворков для C.

http://htk.eng.cam.ac.uk/

Это нелегко использовать, но определенно мощно.

Ответ 6

J.A.R.V.I.S. Java Speech API очень надежный и функциональный, а также минималистичная альтернатива Sphinx.

https://github.com/The-Shadow/java-speech-api