Кордова | Получить прямую трансляцию с микрофона на iOS

Я пытаюсь создать приложение голосового календаря, которое должно использовать прямую трансляцию с микрофона для распознавания речи.

Итак, у вас есть кнопка, которая начинает слушать микрофон и автоматически останавливается, когда пользователь перестает говорить.

Я уже изучил Cordova Media API, который позволяет мне записывать данные в wav-файл. Это работает, но делает процесс очень медленным, так как мне нужно дождаться завершения записи.

Я использовал https://api.ai в качестве отправной точки для создания первой версии приложения, которое работает достаточно хорошо. . Он позаботился обо всей части «прослушивания»!

Следующим этапом для меня является интеграция с несколькими различными API распознавания речи.

Основной проблемой для меня было отсутствие собственных навыков разработки, поэтому есть ли какие-либо плагины Cordova, которые могут помочь мне в этом?

Обновление 1 – 1 апреля 2016 г.

Нашел это https://subvisual.co/blog/posts/39-tutorial-html-audio-capture-streaming-to-node-js-no-browser-extensions Буду пытаться реализовать это в Cordova через webrtc.


Обновление 2 – 1 апреля 2016 г.

Установлен https://github.com/eface2face/cordova-plugin-iosrtc для использования веббртк


Обновление 3 – 2 апреля 2016 г.

Застрять на AudioContext.createMediaStreamSource не работает на iOS! Альтернатива AudioContext.createMediaStreamSource для iOS?


Обновление 4 – 6 апреля 2016 г.

Going Native — пора учиться iOS-разработке!


person ksb    schedule 01.04.2016    source источник


Ответы (1)


Жаль слышать, что вы отказались от Cordova, но если вам все еще интересно: я создал плагин Cordova для iOS и Android, который позволяет вам захватывать данные с микрофона и пересылать их на веб-уровень вашего приложения. Вы можете либо полагаться на Web Audio API для обработки входящего звука, либо использовать любой другой способ кодирования и сохранения необработанных звуковых данных:

https://github.com/edimuj/cordova-plugin-audioinput

Пример использования:

function onAudioInput( evt ) {
  // 'evt.data' is an integer array containing raw audio data
  console.log( "Audio data received: " + evt.data.length + " samples" );

  // ... do something with the evt.data array ...
}

// Listen to audioinput events
window.addEventListener( "audioinput", onAudioInput, false );

// Start capturing audio from the microphone
audioinput.start();
person Edin    schedule 19.07.2016
comment
Спасибо. Это всего лишь этикет StackOverflow, поскольку ссылки часто могут устареть или стать непригодными для использования при изменении URL-адреса, поэтому имейте это в виду для будущих сообщений. - person cdomination; 19.07.2016
comment
@EdinMujkanovic Спасибо за ответ. Я скоро вернусь к приложению Cordova для аудиовхода, и это должно быть действительно полезно для этого :) - person ksb; 25.07.2016
comment
@Edin, как я могу обработать evt.data, чтобы обнаружить тишину? Спасибо - person Killy; 27.02.2019
comment
Он записывает микрофон с iPhone или Android-смартфона? Или он записывает из веб-браузера только на рабочем столе? - person Alex01; 17.02.2021