Подбор голоса в Android

Есть ли способ сделать голосовое сопоставление в Android? Возьмем приведенный ниже сценарий.

  1. Пользователь «А» говорит что-то в приложении и записывает это на телефон через приложение.
  2. Пользователь «Б» говорит что-то в приложении и записывает это на телефон через приложение.
  3. Пользователь «C» говорит что-то в приложении и записывает это на телефон через приложение.
  4. После всех этих записей пользователь «А» приходит и говорит с приложением. Поскольку его голос уже записан, приложение определяет, что это пользователь «А».

Или еще как-то так..

  1. Пользователь «А» произносит слово «Дом» в приложении и записывает его на телефон через приложение.
  2. Пользователь «Б» произносит слово «Дом» в приложении и записывает его на телефон через приложение.
  3. Пользователь «C» произносит слово «Дом» в приложении и записывает его на телефон через приложение.
  4. После всех этих записей пользователь «А» приходит и говорит приложению слово «Дом». Поскольку его голос уже записан, приложение определяет, что это пользователь «А».

Возможно ли это в Android? Какой способ возможен? Я не видел встроенных библиотек для этого, но есть ли способ обойти это?


person JustCause    schedule 16.03.2014    source источник
comment
Есть ли успех в использовании recognito в Android?   -  person Herry    schedule 10.06.2016
comment
@Herry: я никогда не использовал его, Генри. Я все равно бросил эту работу.   -  person JustCause    schedule 11.06.2016
comment
Вы можете использовать Microsoft Speaker Identification API azure.microsoft.com/ en-in/services/cognitive-services/   -  person Anil gangwar    schedule 04.10.2017


Ответы (1)


Вы можете проверить Recognito, который выполняет независимое от текста распознавание говорящего в Java.

Это библиотека FOSS под лицензией Apache 2.0.

https://github.com/amaurycrickx/recognito

Дисклеймер: я автор :-)

Он имеет небольшую зависимость от Oracle javax.sound для обработки файлов, но удалить эту зависимость из основного класса Recognito должно быть просто (несколько методов, которые следует отбросить: найдите «файл» в параметрах и нажмите del)

Я не знаю никаких других альтернатив FOSS, которые были бы совместимы с Android без модификаций.

Там много javadoc, код должен быть простым.

Единственное, что вам может быть интересно, это как создать double[] со значениями от -1.0 до 1.0. Для начала вы можете взглянуть на класс FileHelper, который делает именно это с 16-битным кодированным файлом PCM.

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

Для процесса я бы посоветовал использовать фразу, повторенную 3 раза, чтобы построить усредненный вокальный отпечаток. Используйте ту же фразу во время распознавания.

Библиотека не зависит от текста, но это поможет использовать ту же фразу, если вам нужно сделать запись короткой. Если вы хотите, чтобы он был действительно независимым от текста (пользователь говорит что-то и его узнают), вам понадобятся более длинные вокальные сэмплы.

ХТН

person amaurycrickx    schedule 17.03.2014
comment
Не могли бы вы помочь мне, я хочу использовать Recognito в своем проекте Android Studio, но я не могу добавить эту библиотеку в свой проект. - person Urvika G; 06.06.2017
comment
@amaurycrickx: разве мы не предполагаем реализовать «Recongnito» на сервере, а затем отправлять голосовые файлы, собранные с мобильного телефона, на сервер для аутентификации??? - person Kazmi; 05.10.2017