11

W aplikacji, muszę porównać nagrywanie na żywo z wcześniej lokalnie zapisanym poleceniem głosowym, jeśli pasuje (nie tylko tekst, ale także zidentyfikowane osoby głos), a następnie wykonaj niezbędne czynności.Porównaj dwa dźwięki (lokalnie przechowywane wcześniej nagrane polecenie głosowe i nagrane z mikrofonu w aplikacji) w iOS

Komendy głosowe 1-meczowe od tej samej osoby.

Tekst polecenia 2-meczowego.

Zastosowałem wiele sposobów, ale żaden nie działa zgodnie z moimi oczekiwaniami.

pierwsze: użycie mowy na tekst Biblioteka jak OpenEars, SpeechKit ale te biblioteki konwertować tylko tekst z mową.

Wynik: Nie Jak moje oczekiwania

drugie: (druk Finger Audio)

acrcloud Library: w tej bibliotece, mogę nagrać polecenie i przechowywane że mp3file na serwerze acrcloud i dopasować się do nagrania na żywo (mówione przeze mnie), nie pasuje, ale kiedy odtwarzam to samo nagranie (nagrany plik MP3 mojego głosu), który jest przesłany na serwer Acrcloud, to pasuje. Wynik: Nie Jak moje oczekiwania

API.AI: w tej bibliotece, to jest jak mowy na tekst, mam pewne komendy tekstowe przechowywane na swoim serwerze, a następnie ktoś mówi to samo polecenie wynikiem uzyskać sukces. Wynik: Nie Jak moje oczekiwania

Proszę zasugerować mi, jak rozwiązać ten problem dla iOS Aplikacja

+0

@ gnasher729 zabawy z zeszłego tygodnia, zgodnie z komentarzem jest to możliwe. –

+0

jeśli biblioteka Acrcloud się nie udała, to podbijcie ją na swojej stronie internetowej. –

+0

@TejaNandamuri biblioteka akrcloud nie zawodzi, ale moje oczekiwania różnią się od tego, aby dopasować głos osoby wraz z zawartością. –

Odpowiedz

-2

Ogólnie myślę, że należy użyć metody 1 z pewnym uszczypnąć. Dla dźwięku lokalnego. Dodajesz wersję skryptu tekstowego, taką jak: 1 audio, skrypt źródłowy Nagrywanie dźwięku. Użyj OpenEars, SpeechKit do konwersji dźwięku na tekst

Spróbuj porównać skrypt źródłowy i tekst, aby uzyskać wynik. Należy zaznaczyć, jaki tekst musi być stresem w skrypcie źródłowym, aby uzyskać najlepszy wynik porównania. Czasami mamy słowo jak: wina, żona, biały ... (spróbuj obsłużyć to myśleć zbyt)

GLHF

1

ten sposób chciałbym podejść do tego Jeśli rozumiem poprawnie ur wymagania:

  1. Będziesz musiał porównać widmo audio każdego nagrania, aby dopasować osobę (Spójrz na vDSP w ramach Accelerate) Analiza FFT z 1024 oknem powinna wystarczyć (jeśli nie spróbuj podwajać go dla większej ilości szczegółów), zacznę porównywać z 5-10 szczytów w widmie i eksperymentuj stamtąd. sprawdź na EZAudio dla łatwej realizacji FFT, aby zacząć.

  2. Użyj mowy do biblioteki tekstowej, aby dopasować tekst. Akcenty mowy zwykle znacznie zniekształcają ich wyniki, więc prawdopodobnie zacznę od próby uzyskania tekstu zarówno z dźwięku, jak i porównania, zamiast określać polecenie w tekście pasujące do siebie.

Powodzenia!

+0

Mam już obliczyć częstotliwość audio przez FFT (vDSP w ramach Accelerate) i proszę wyjaśnić proces obliczania spektrum audio, a następnie, jak porównać te spektrum audio do dopasowania ludzkiego vocie.this jest głównym wyzwaniem, jak pisaliśmy kod dla tego. –

+1

A. Levy ma bardzo dobrą odpowiedź tutaj, aby zacząć: http://stackoverflow.com/questions/604453/analyze-audio-using-fast-fourier-transform – Kaitis

1

http://www.politepix.com/openears/ może być używany w obiektywach-c lub jeśli chcesz szybko spróbować http://blog.tryolabs.com/2015/06/15/tlsphinx-automatic-speech-recognition-asr-in-swift/. Nigdy ich nie używałem, ale wydają się mieć wszystko, czego potrzebujesz. Jeśli nie, spróbuj szukać bibliotek C++, powinno być więcej opcji, ale najprawdopodobniej będziesz musiał poradzić sobie z typowymi problemami z portowaniem. Naprawdę nie polecam pisania sobie samemu, ponieważ poświęcisz trochę czasu na naukę techniki, a następnie zaimportujesz bibliotekę przetwarzania sygnałów, aby następnie zacząć pisać swój własny algorytm. Z wyjątkiem oczywiście, jeśli masz czas i zainteresowanie, aby to zrobić.

Zaleca się, aby rozpocząć integrację aplikacji w taki sam sposób, jak oprogramowanie do rozpoznawania głosu jest zazwyczaj opracowywane: zapisz kilka przykładów, twórz testy i często sprawdzaj, czy rzeczy są włączone/wyłączone.

Jedną z ważniejszych rzeczy, których nauczyłem się podczas pracy z rozpoznawaniem głosu (zarówno w rozpoznawaniu słów, jak i rozpoznawaniu głośników) było to, że jakość nagrania ma duży wpływ na to, co możesz z nim zrobić. Zrób niewielką porcję nagrań w najcichszym miejscu, jakie możesz znaleźć, a następnie zawsze będziesz mieć punkt odniesienia do porównania z bardziej realnymi nagraniami.

Spróbuj również objąć wszystkie mikrofony, które znajdziesz w prawdziwych aplikacjach na późniejszym etapie, ponieważ nie ma żadnych wewnętrznych gwarancji, że wszystkie mikrofony iPhone'a są sobie równe. Spodziewałbym się, że nie będzie się on różnił w różnych modelach iPhone'a, ale kto wie?

+0

to jest biblioteka jest tylko mowa do tekstu, nie porównując człowieka głos jak głos Uwierzytelnienie. –

+1

Mój błąd tam. BTW nie wspominając o tym, czy możesz odładować ciężką pracę na serwer, co znacznie rozszerzyłoby twoje możliwości na intensywne algorytmy cpu i/lub inne języki. Jestem zaskoczony ilością płatnych rozwiązań i bardzo niewielu otwartych źródeł. Oto jeden przykład płatnej technologii (freemium) do budowania po stronie serwera, ale najwyraźniej potrzebujesz tylko wywołań REST, więc łatwo jest zintegrować się z iOS: https://www.microsoft.com/cognitive-services/en-us/rozpoznawanie głośników-api. Firma Microsoft oferuje także pakiet SDK do przekształcania tekstu na tekst, który najwyraźniej może działać w trybie offline. – Fabio

+0

Powodzenia w api Microsoft? – Fabio