У меня есть решение, которое хорошо работает для распознавания речи и записи звука. Вот ссылка на простой проект Android, который я создал, чтобы показать, как работает решение. Кроме того, я добавил несколько экранов печати в проект, чтобы проиллюстрировать приложение.
Я попытаюсь кратко объяснить подход, который я использовал. В этом проекте я объединил две функции: Google Speech API и запись Flac.
Google Speech API вызывается через HTTP-соединения. Майк Пульц дает более подробную информацию об API:
"(...) новый API [Google] представляет собой API-интерфейс с полнодуплексной потоковой передачей. Это означает, что он фактически использует два HTTP-соединения - один запрос POST для загрузки контента в виде« живого »фрагментированного потока и второй запрос GET для доступа к результатам, который имеет гораздо больше смысла для более длинных аудиосэмплов или для потокового аудио. "
Однако этот API должен получать звуковой файл FLAC для правильной работы. Это заставляет нас перейти ко второй части: запись Flac
Я реализовал запись Flac в этом проекте путем извлечения и адаптации некоторых фрагментов кода и библиотек из приложения с открытым исходным кодом под названием AudioBoo. AudioBoo использует собственный код для записи и воспроизведения формата flac.
Таким образом, можно записать звук flac, отправить его в Google Speech API, получить текст и воспроизвести только что записанный звук.
Проект, который я создал, имеет базовые принципы для его работы и может быть улучшен для конкретных ситуаций. Чтобы заставить его работать в другом сценарии, необходимо получить ключ Google Speech API, который получается, будучи частью группы Google Chromium-dev. Я оставил один ключ в этом проекте, чтобы показать, что он работает, но в конце концов я его удалю. Если кому-то нужна дополнительная информация, дайте мне знать, потому что я не могу разместить более 2 ссылок в этом сообщении.