Сравните голосовой wav в Android или голосовой тег (голосовые команды) API

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


person rami    schedule 08.02.2011    source источник
comment
Вы пытаетесь распознать, что обе записи принадлежат одному и тому же говорящему (голосовая аутентификация или идентификация говорящего), или вы пытаетесь определить, что были произнесены одни и те же слова? Что вы соответствуете? личность говорящего или слова, которые он произнес?   -  person Michael Levy    schedule 08.02.2011
comment
Привет. как вы это решаете?   -  person Hardik Joshi    schedule 02.05.2014


Ответы (2)


Относительно сделать это можно с помощью БПФ (быстрого преобразования Фурье) для преобразования данных во временной области исходного файла WAV в данные в частотной области (в которых каждое значение в преобразованном массиве представляет относительная величина/интенсивность конкретной полосы частот).

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

К сожалению, мне не удалось найти какие-либо библиотеки БПФ специально для Android. Вот вопрос, который ссылается на некоторые библиотеки на основе Java:

Библиотека обработки сигналов в Java?

person MusiGenesis    schedule 08.02.2011
comment
Спасибо, но я действительно удивлен, почему мой старый мототелефон может это сделать, а этот новый тупой андроид не может, боже мой, я просто хочу записать свой голос, а затем произнести его снова, и он будет знать, близок ли он к оригиналу! Я не хочу делать эту сложную вещь, я имею в виду, если они будут точно такими же, нет проблем, но есть много алгоритмов, чтобы решить, близко ли это к оригиналу или нет, я не хочу изобретать велосипед! - person rami; 08.02.2011
comment
Да, похоже, встроенные в Android функции распознавания речи работают не так, как вам хотелось бы. Я думаю, что производители на самом деле отошли от того, как ваш мотоцикл распознавал речь, поскольку этот старый способ зависел от обучения вашего телефона распознаванию вашего конкретного голоса. Это то, чего вы, конечно, хотите, но это считалось серьезной слабостью, и, вероятно, поэтому никто больше так не делает. - person MusiGenesis; 08.02.2011
comment
MusiGenesis прав. Старый способ распознавания голоса заключался в том, что в телефоне были все библиотеки и программное обеспечение для обработки на самом устройстве. Андроиды открывают поток для Google, и вы на самом деле «разговариваете» с серверами Google, а не со своим телефоном. Затем серверы отправляют интерпретацию обратно на телефон. Это более точно, поддерживает больше функций и таким образом экономит место на телефоне. Но это наносит ущерб тому, что вы пытаетесь сделать, и это печально. :( - person Brandon; 08.02.2011
comment
Что еще хуже, когда Android не может связаться с сервером, голосовой поиск на главном экране заставляет вас записать новую попытку, вместо того, чтобы позволить вам повторить попытку с существующей записью (или даже позволить вам настроить ее так, чтобы она продолжала делать это автоматически). - person Chris Stratton; 08.02.2011
comment
есть ли у вас ссылка (желательно опубликованный обзорный документ), описывающая полезные функции для распознавания/классификации голоса? - person Abhishek Anand; 29.05.2013
comment
@Abhishek: я не уверен, что именно вы просите. Распознавание голоса и преобразование речи в текст — чрезвычайно разные темы. - person MusiGenesis; 29.05.2013
comment
@MusiGenesis Мне нравится ваша идея превратить голос в дискретные значения БПФ. В общем, для машинного обучения (распознавания/классификации) мы преобразуем ввод (например, голос) в набор чисел (называемых функциями в машинном обучении). Затем мы пытаемся придумать математическую функцию, которая отображает эти функции в желаемый результат (например, в текст). В вашем ответе говорится, что БПФ — хорошая функция для голосовых данных. Мне было любопытно, какие еще есть хорошие функции для машинного обучения на голосовых данных. - person Abhishek Anand; 30.05.2013

Идея состоит в том, чтобы сравнить сходство голосов в их спектрограммах. Характеристики спектрограммы надежны и устойчивы к шуму, что является хорошим ориентиром для анализа двух голосов. Если вы выберете этот подход, вы должны сначала выяснить особенности голосов, а затем вам нужно знать, как сравнивать функции на двух спектрограммах, это относится к распознаванию образов.

Этот API http://code.google.com/p/musicg-sound-api/ написан на Java и может использоваться в Android. Он фиксирует волновую спектрограмму.

person c'quet    schedule 10.11.2011