Nano Hash - криптовалюты, майнинг, программирование

Могу ли я использовать API распознавания речи Google в своем настольном приложении?

Я хочу знать, могу ли я использовать API распознавания речи Google для своего настольного приложения. Я видел пример, в котором мне нужно преобразовать речь в файл и отправить по URL-адресу. Но это будет немного громоздкой задачей, потому что в моем приложении пользователь должен постоянно подавать свой голос. Итак, есть ли другая альтернатива использованию API речи Google. Меня меньше всего интересует sphinx, потому что его точность очень низкая, и я не знаю, как добавлять новые слова в словарь, а без добавления его в словарь он не распознает новые слова. Любая помощь будет оценена по достоинству.


  • Вы знаете, что это API, но не знаете, сможете ли вы его использовать? Я бы сказал, что вы можете использовать любой API. 15.09.2013

Ответы:


1

Вы имеете в виду окружающее прослушивание? На самом деле я работаю над некоторым алгоритмом обнаружения голосовой активности с API распознавания речи Google. Хотя я еще не закончил алгоритм, я добавил калькулятор громкости и частоты, чтобы вам не приходилось отправлять запросы в Google, когда человек не говорит. Вот ссылка на исходный код.

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

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

//package recognitionprocess;
//import org.jaudiotagger.audio.*;


import java.io.FileOutputStream;
import java.io.IOException;
import java.io.RandomAccessFile;

import javax.sound.sampled.AudioFileFormat;

import com.darkprograms.speech.recognizer.GoogleResponse;
import com.darkprograms.speech.recognizer.Recognizer;

public class RecognitionMain {

    public static void main(String[] args)  {
        try{
        ambientListening();
        }
        catch(Exception e){
            e.printStackTrace();
        }
    }

    private static void ambientListening() throws Exception{

        String filename = "tarunaudio.wav";//Your Desired FileName
        MicrophoneAnalyzer mic = new MicrophoneAnalyzer(AudioFileFormat.Type.WAVE);
       mic.open();
        mic.captureAudioToFile(filename);
        final int THRESHOLD = 10;//YOUR THRESHOLD VALUE.
        int ambientVolume = mic.getAudioVolume();//
        int speakingVolume = -2;
        boolean speaking = false;
            for(int i = 0; i<1||speaking; i++){
                int volume = mic.getAudioVolume();
                System.out.println(volume);
                if(volume>ambientVolume+THRESHOLD){
                    speakingVolume = volume;
                    speaking = true;
                    Thread.sleep(1000);
                    System.out.println("SPEAKING");
                }
                if(speaking && volume+THRESHOLD<speakingVolume){
                     break;
                }
                Thread.sleep(200);//Your refreshRate
            }
              mic.close();
            //You can also measure the volume across the entire file if you want
            //to be resource intensive.
            if(!speaking){
                 ambientListening();
            }
        Recognizer rec = new Recognizer(Recognizer.Languages.ENGLISH_US);
        GoogleResponse out = rec.getRecognizedDataForWave(filename);
        System.out.println(out.getResponse());
        ambientListening();
    }
}
15.09.2013
  • у вас есть пример кода, как его выполнить. Для меня это было бы здорово, потому что я должен показать это клиенту к концу этого месяца. 16.09.2013
  • Вы можете скачать пример ветки, но я отредактирую свой ответ, чтобы включить пример кода. 18.09.2013
  • это создает много проблем, можете ли вы дать мне свой почтовый идентификатор, чтобы я мог обсудить с вами свою проблему и отправить вам свой код, или вы просто отправляете мне тестовое письмо на [email protected] 18.09.2013
  • Я отправил вам электронное письмо, но до сих пор не получил ответа. 21.09.2013
  • спасибо чувак ты решил мою проблему. Большое спасибо 07.10.2013
  • Было бы здорово, если бы вы поделились правильной версией здесь и отредактировали свой ответ. 06.12.2013
  • Не могли бы вы поделиться правильным кодом для этого эмбиентного прослушивания? 05.03.2014
  • @Skylion - этот код работает, но иногда он просто зависает и не отвечает, я предполагаю, что это кодирование wav во Flac. Я заметил, что поток спит, но время сна довольно короткое, даже если вы изменили время сна и частоту обновления - он складывается много раз. Это известная проблема? Взгляните на потрясающую демонстрацию API Google: google.com/intl. /en/chrome/demos/speech.html Если вы используете тот же API, что и эта демонстрация, не должна ли она быть более точной при обнаружении? Спасибо. 26.03.2014
  • Как это выполнить? Я только что скачал код с github, но не могу понять, как его выполнить. Можете ли вы направить меня .. 20.05.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..