Я хочу знать, могу ли я использовать API распознавания речи Google для своего настольного приложения. Я видел пример, в котором мне нужно преобразовать речь в файл и отправить по URL-адресу. Но это будет немного громоздкой задачей, потому что в моем приложении пользователь должен постоянно подавать свой голос. Итак, есть ли другая альтернатива использованию API речи Google. Меня меньше всего интересует sphinx, потому что его точность очень низкая, и я не знаю, как добавлять новые слова в словарь, а без добавления его в словарь он не распознает новые слова. Любая помощь будет оценена по достоинству.
Могу ли я использовать API распознавания речи Google в своем настольном приложении?
15.09.2013
- Вы знаете, что это 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
Новые материалы
Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..
Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально
Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..
Частный метод Python: улучшение инкапсуляции и безопасности
Введение
Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..
Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования
Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..
Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv)
Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..
Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..
Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..