Съдържание:

Разпознаване на реч: 12 стъпки
Разпознаване на реч: 12 стъпки

Видео: Разпознаване на реч: 12 стъпки

Видео: Разпознаване на реч: 12 стъпки
Видео: "12 стъпки към по-щастлив живот" с Мадлен Алгафари - Трейлър - Лекция 1 2024, Юли
Anonim
Разпознаване на реч
Разпознаване на реч

Здравейте всички………

Това е втората ми инструкция, която публикувам

Така че добре дошли на всички …

В тази инструкция ще ви науча как да изградите разпознавател на глас с помощта на дъска arduino.

Така че мисля, че вече сте имали опит с дъските arduino. Ако не, това изобщо не е голям проблем тук. Но ви препоръчвам да свикнете с него, тъй като е много интересно да играете с него и да създавате някои готини проекти извън него според вашето творчество и знания за него.

Така че за хората, които нямат предишен опит с използването на arduino:

Arduino е компютърен хардуер с отворен код, който се произвежда от компания, която има голяма общност от дизайнери и производители. Може да се разглежда като малък компютър, който може да се използва за управление на други електронни схеми

Arduino е програмиран в среда, разработена от самите тях, която може лесно да бъде изтеглена от техния уебсайт

Стъпка 1: Как да настроите околната среда?

Как да настроим околната среда?
Как да настроим околната среда?
Как да настроим околната среда?
Как да настроим околната среда?
Как да настроим околната среда?
Как да настроим околната среда?
Как да настроим околната среда?
Как да настроим околната среда?

Просто потърсете в google „изтеглете arduino“

Кликнете върху „Arduino - Софтуер“

Ще можете да видите „Изтеглете Arduino IDE“

Изберете в зависимост от вашата операционна система

Изтеглете и инсталирайте

Така че успешно сте инсталирали софтуера и можете да напишете кода си за arduino и с помощта на кабел можете да свържете платката arduino към компютъра и да вмъкнете кода.

Стъпка 2: Защо се увеличава търсенето на Arduino?

Евтино

Платките Arduino са евтини в сравнение с други платформи за микроконтролер. Това ще струва само около 50 долара.

Крос-платформа

Софтуерът за Arduino работи на Windows, Macintosh OS и Linux операционни системи. Ако мислим за други системи за микроконтролер, той ще работи само в Windows или с други думи, ограничен само до прозорци.

Софтуер с отворен код и разширяем

Софтуерът е с отворен код, така че хората започнаха да го изучават задълбочено и да включват библиотеки (които включват набор от функции за работата му) на други езици за програмиране.

Проста и лесна среда за програмиране

Лесно е да използвате Arduino IDE (софтуер, за който вече говорихме …) за хора, включително начинаещи, тъй като голямо количество ресурси се предоставят от самите Arduino, които са достъпни в интернет безплатно. Така че не се колебайте да научите повече за това.

Отворен код и разширяем хардуер

Плановете на дъските на Arduino са публикувани под лиценз Creative Commons, така че хората, които имат опит в проектирането на схеми, могат да направят своя собствена версия на модула, те също имат право да разширят технологията и могат да подобрят, като добавят функции към нея.

Стъпка 3: Нека започнем !!!!

Така че вече казах, че този проект е фокусиран главно върху разпознаване на глас с помощта на Arduino и да му позволи да изпълнява някои задачи.

Говорете по -ясно ……

Той улавя звуковите сигнали, предоставени от потребителя, които могат да бъдат открити чрез мигане на светодиода, след като той се преобразува в синтезирана реч.

Стъпка 4: Необходими компоненти

Необходими компоненти
Необходими компоненти
Необходими компоненти
Необходими компоненти
Необходими компоненти
Необходими компоненти

Основните компоненти, необходими за този проект, са:

Arduino Due x 1

Spark Fun Electret микрофон Breakout x 1

Spark Fun Mono Audio Amp Breakout x 1

Високоговорител: 0,25 W, 8 ома x 1

Платформа x 1

5 мм LED: червен x 3

Резистор 330 ома х 3

Джъмперни проводници x 1

Поялник х 1

BitVoicer сървър

Това е сървър за разпознаване и синтез на реч за автоматизация на речта.

Стъпка 5: Как всъщност работи?

1. Аудио вълните се откриват, след което той улавя тези вълни и се усилва от дъската за пробив Sparkfun Electret.

2. Усиленият сигнал, получен от горния процес, ще бъде дигитализиран и буфериран/съхранен в платката Arduino, като се използва нейният аналогово-цифров преобразувател (ADC), присъстващ в нея.

3. Аудио пробите ще бъдат предоставени на BitVoicer сървъра, като се използва серийният порт Arduino.

4. BitVoicer Server ще обработи аудио потока и след това ще разпознае речта, която съдържа.

5. Разпознатата реч ще бъде съпоставена с командите, които вече са били дефинирани преди това, след което ще бъде изпратена обратно към Arduino. Ако една от командите се състои в синтезиране на реч, BitVoicer Server ще подготви аудио потока и ще го изпрати до Arduino.

6. Arduino ще идентифицира предоставените команди и ще извърши определено подходящо действие. Ако се получи аудио поток, той ще бъде поставен на опашка в класа BVS Speaker и ще бъде възпроизведен с помощта на DUE DAC и DMA.

7. Моноусилвателят SparkFun Mono усилвател ще усилва DAC сигнала, така че да може да управлява 8 ома високоговорител и да се чува през него.

Стъпка 6: Окабеляване на компонентите

Окабеляване на компонентите
Окабеляване на компонентите
Окабеляване на компонентите
Окабеляване на компонентите

Първата стъпка е да свържете различни компоненти в макета, а също и с дъската arduino, както е показано на снимката

Не забравяйте, че използваната тук дъска arduino е DUE, има различни други модели, произведени от Arduino, всеки работи на различни нива на напрежение

Повечето платки на Arduino работят при 5 V, но DUE работи при 3.3 V

DUE вече използва 3.3 V аналогова референция, така че не се нуждаете от джъмпер към щифта AREF

О, съжалявам, забравих да кажа, че щифт AREF е „АНАЛОГЕН РЕФЕРЕНТЕН ПИН“, който присъства в платка arduino, както е показано на следващата фигура (Това е arduino UNO, но е подобно в подобния сайт в случая на DUE)

Щифтът AREF на DUE е свързан към микроконтролера чрез резисторен мост

За да използвате щифта AREF, резисторът R1 трябва да бъде споен от печатната платка [печатна платка]

Стъпка 7: Предоставяне на код на Arduino Board

Предоставяне на код на борда на Arduino
Предоставяне на код на борда на Arduino

Така че трябва да качим кода на Arduino Board, така че да може да работи в зависимост от инструкциите, предоставени в кода.

Това е много лесно да се направи. Ще обясня всеки от тях подробно, за това какво правят и как работят.

Как да инсталирате библиотека?

Така че преди това трябва да знаем как да инсталираме библиотеките на BitVoicer Server в Arduino IDE., Което в софтуера arduino.

Така че за това отворете Arduino IDE

В горния панел кликнете върху „Скица“

След това кликнете върху „Включване на библиотеката“

Кликнете върху „Управление на библиотеката“

След това мениджърът на библиотеките ще се отвори и можем да видим списък с библиотеки, които са готови за инсталиране, или тези, които вече са инсталирани

Потърсете библиотеката за инсталиране и след това изберете номера на версията

Тук инсталираме библиотеки на BitVoicer Server, които са необходими за този проект

Как да импортирам.zip библиотека?

Библиотеките могат да се разпространяват и като ZIP файл или папка

Името на папката е името на библиотеката

Вътре в папката ще има.cpp файл,.h файл и често файл с ключови думи.txt, папки с примери и други файлове, изисквани от библиотеката

От версията 1.0.5 на Arduino IDE можете да инсталирате библиотеки на трети страни вътре в нея

Не разархивирайте изтеглената библиотека, оставете я такава, каквато е

За целта отидете на скица> Включване на библиотека> Добавяне на.zip библиотека

Изберете местоположението на.zip файла и го отворете.

Върнете се в менюто Sketch> Import Library.

Ако е правилно импортирана, тази библиотека ще се вижда в долната част на падащото меню, когато навигирате.

Стъпка 8: Програма/скица

Това е програмата, която трябва да бъде качена в Arduino.

Това може да стане просто като свържете Arduino Board към компютъра и го качите на дъската.

Стъпка 9: Какво ще кажете за написаните кодове?

Сега нека да разгледаме какво всъщност прави всяка от функциите, написани в кода ………….

Библиотечни препратки и декларация на променлива

Преди да говорим за това, трябва да знаем и разберем някои основни терминологии. Те включват:

  • БВСП

    Това е библиотека, която ни дава почти всички ресурси, необходими за обмен на информация със сървъра BitVoicer

    Съществува протокол, известен като BitVoicer Server Protocol, който се реализира чрез класа на BVSP. Това е необходимо за взаимодействие със сървъра

  • BVSMic

    Това е библиотека, която изпълнява всички неща, необходими за запис на аудио с помощта на аналогово-цифров конвертор (ADC) на Arduino

    Това аудио се съхранява във вътрешния буфер на класа и те могат да бъдат извлечени и след това могат да бъдат изпратени до механизмите за разпознаване на реч, които са достъпни на BitVoicer сървъра

  • BVS Говорител

    Това е библиотека, която съдържа всички основни ресурси, необходими за възпроизвеждане на аудио потоци, изпратени от BitVoicer сървъра

    За това платката Arduino трябва да има вграден цифрово-аналогов преобразувател (DAC)

    Arduino DUE е единствената платка на Arduino, която има интегриран DAC

Библиотеките на BVSP, BVSMic, BVSSpeaker и DAC, препратката към тях е написана в първите четири реда, което съставлява взора на програмата

Когато инсталирате BitVoicer Server, можете да намерите BitSophia, който предоставя всички тези четири библиотеки

Когато потребителят добави препратка към библиотеката BVSSpeaker, DAC библиотеката, която беше спомената по -рано, ще бъде автоматично извикана

Класът BVSP се използва за комуникация с BitVoicer сървър

Класът BVSMic се използва за улавяне и съхраняване на аудио

Класът BVSSpeaker се използва за възпроизвеждане на аудио с помощта на Arduino DUE DAC

2. функция за настройка

Функцията за настройка се използва за извършване на определени действия като:

За задаване на пинови режими и техните начални състояния

За инициализиране на серийна комуникация

За инициализиране на клас BVSP

За инициализиране на клас BVSMic

За инициализиране на клас BVSSpeaker

Той също така задава „манипулатори на събития“(указатели на функции) за събитията frameReceived, modeChanged и streamReceived от класа BVSP

Стъпка 10: Циклична функция

Той извършва пет основни операции:

1. функция KeepAlive ()

Тази функция е да поиска от сървъра информация за състоянието.

2. функция get ()

Тази функция е да провери дали сървърът е изпратил данни или не. Ако сървърът е изпратил данни, той ще ги обработи.

3. isSREAvailable (), startRecording (), stopRecording () и sendStream () функции

Тези функции се използват за управление на различните настройки при запис на аудио и след като достигне звука, той ще го изпрати до BitVoicer сървъра.

4. функция play ()

Тази функция се използва за възпроизвеждане на аудио, което е поставено на опашката в клас BVSSpeaker.

5. playNextLEDNote ()

Тази функция се използва за контрол на начина, по който светодиодът трябва да мига.

6. BVSP_frameReceived функция

Тази функция се извиква всеки път, когато функцията receive () започне да идентифицира, че е получен един пълен кадър. Тук изпълняваме командите, получени от BitVoicer Server. Командите, които контролират мигането на светодиодите, са от 2 байта. В този първи байт показва пина, а вторият байт показва стойността на пина. Тук използваме функцията analogWrite (), за да зададем подходящата стойност на пина. Тогава също трябва да проверим дали е получена командата playLEDNotes, която е от тип байт. Ако е получен, задавам playLEDNotes на true и той ще следи и маркира текущото време. Това време ще се използва от функцията playNextLEDNote за синхронизиране на светодиодите с песента.

7. BVSP_modeChanged функция

Тази функция се извиква всеки път, когато функцията receive () идентифицира промяна в режима в изходящата посока (Server Arduino). BitVoicer сървърът може да изпраща рамкирани данни или аудио към Arduino. Преди комуникацията да премине от един режим в друг, BitVoicer Server изпраща сигнал. Класът BVSP идентифицира този сигнал и повдига или маркира събитието modeChanged. Във функцията BVSP_modeChanged, ако потребителят открие, че комуникацията преминава от режим на поток към режим на рамка, той/тя ще знае, че аудиото е приключило, така че потребителят може да каже на класа BVSSpeaker да спре да възпроизвежда аудио.

8. BVSP_streamReceived функция

Тази функция се извиква всеки път, когато функцията receive () идентифицира, че са получени аудио образци. Той просто извлича аудиото и ги поставя на опашка в класа BVSSpeaker, за да може функцията play () да ги възпроизведе.

9. playNextLEDNote функция

Тази функция се изпълнява само ако функцията BVSP_frameReceived идентифицира командата playLEDNotes. Той контролира и синхронизира светодиодите с аудиото, изпратено от BitVoicer Server. За да синхронизирате светодиодите с аудиото и да знаете правилното време, може да се използва безплатен софтуер Sonic Visualizer. Тя ни позволява да гледаме аудио вълните, така че човекът да може да разбере кога е натиснат клавиш на пиано.

Стъпка 11: Как да импортирате обекти на BitVoicer Server Solution?

Сега сме настроили BitVoicer сървъра да работи с Arduino.

Има четири основни обекта на решение за BitVoicer сървър: местоположения, устройства, BinaryData и гласови схеми.

Нека разгледаме тези подробности:

Местоположения

Той представлява физическото място, на което се инсталира устройството.

Можем да създадем място, наречено Начало.

Устройства

Те се считат за клиенти на BitVoicer Server.

Подобно на създаването на местоположение, можем да създадем и смесено устройство, за по -лесно нека го наречем ArduinoDUE.

Понякога може да се случи препълване на буфер, така че за да го премахна, трябваше да огранича скоростта на предаване на данни в настройките за комуникация до 8000 проби в секунда.

BinaryData е вид команда, която BitVoicer Server може да изпраща до клиентски устройства. Те всъщност са байтови масиви, които можете да свържете към команди.

Когато BitVoicer Server разпознае реч, свързана с тази команда, той изпраща байтовия масив до целевото устройство.

Така че поради тази причина създадох един обект BinaryData към всяка стойност на пина и ги кръстих ArduinoDUEGreenLedOn, ArduinoDUEGreenLedOff и така нататък.

Затова трябваше да създам 18 BinaryData обекта, затова ви предлагам да изтеглите и импортирате обектите от файла VoiceSchema.sof, който е предоставен по -долу.

И така, какво е гласова схема?

Гласовите схеми са мястото, където всичко се събира. основната им роля е да определят как трябва да се разпознават изреченията и какви команди трябва да се изпълняват.

За всяко изречение можете да дефинирате толкова команди, колкото са ви необходими, и реда, в който те ще бъдат изпълнени.

Можете също така да дефинирате закъснения между всяка от предоставените команди.

BitVoicer Server поддържа само 8-битов моно PCM аудио (8000 проби в секунда), така че ще има нужда да конвертирате аудио файла в този формат, днес има толкова много онлайн такси за преобразуване и препоръчвам https://audio.online -convert.com/convert-to-wav.

Можете да импортирате (Импортиране на обекти на решение) всички обекти на решение, които използвах в този проект от файловете по -долу.

Единият от тях съдържа DUE устройството, а другият съдържа гласовата схема и нейните команди.

Стъпка 12: Заключение

Ето !!!

Направихте страхотен проект и можете да говорите с него

Така че започнете да говорите ………………

Можете да мигате светодиодите и в същото време можете да го кажете, за да изпее песен, ако е необходимо, нейният код вече е предоставен

Така че завърших втората си инструкция !!!!!!!!

Да ……

Мисля, че всички го разбраха …

Ако някой има въпроси, не се колебайте да ме попитате

Следващия път ще измисля отличен Instructable …

Чао…

Ще се видим скоро……………

Препоръчано: