Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.11.2012, 23:53   #1
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Распознавание голосовых комманд на Arduino Nano

uSpeech библиотека распознавания речевых комманд
Библиотека uSpeech предоставляет интерфейс для
распознавания голоса с помощью Arduino. Но не ожидайте слишком многого от неё. Вы можете создать с помощью этой библиотеки 10 голосовых команд.
Вероятность распознавания 30% - 40%, если на основе фонем то до 80%
Библиотека не требует обучения. Библиотека достаточно интенсивно нагружает контроллер.
Каждый образец коллекции занимает около 3,2 миллисекунд, поэтому обращайте внимание
на время.Каждый сигнал объект использует до 160bytes.
Микрофон подключается на A0

Тестовый скетч на три команды
PHP код:
#include <uspeech.h>
signal voice(A0);
String collvoice;

void setup()
{
voice.calibrate();
Serial.begin(115200);
}

void stop_()
{
voice.calibrate();
Serial.println("stop");
}

void left()
{
voice.calibrate();
Serial.println("left");
}

void right()
{
voice.calibrate();
Serial.println("right");
}

void loop()
{
  
char phoneme voice.getPhoneme();

 if( 
phoneme != 'h')
 {
   
collvoice denoise(phonemecollvoice);
  } else {
          
int i[3],j,min,x;
          
i[0] = umatch(collvoice,"sop"); //stop
          
i[1] = umatch(collvoice,"ez"); //left
          
i[2] = umatch(collvoice,"i"); //right

          
while(j<0)//find the lowest number
          
{
            if(
i[j]<min)
             {
              
j;
              
min i[j];
             }
           
j++;
          }
        if(
== 0stop_();
        if(
== 1left();
        if(
== 2right();
        }

Алгоритм
Библиотека использует специальный алгоритм для включения детектирования речи.
Первая сложность сигнал определяется с абсолютной производной сигнала,
умножив его на фиксированную скалярную точку, а затем разделив его на
абсолютный интеграл от сигнала. Согласные (кроме R, L, N и M) имеют значения выше 40
и гласные имеют значение ниже 40. Для определения гласных банк используется фильтр
и форманты извлекаются и соответствуют этой таблице. Что касается согласных, они могут
быть разделены на frictaves и взрывные. Взрывные как П и Б, а frictaves похожи с или г.
Вообще каждая группа сложности coeficient (ABS производной по интегральной ABS) могут быть сопоставлены
с небольшим набором frictaves и взрывных. Сигнал определяет, будет ли это взрывной или frictave,
наблюдая за длиной высказывания (взрывные происходят в течение коротких периодов в то время как
frictaves более длинные). Наконец, наиболее подходящий символ будет выбран.

Микрофон подключается к аналоговому входы через микрофонный усилитель.
Нажмите на изображение для увеличения
Название: ou.png
Просмотров: 572
Размер:	9.8 Кб
ID:	654

Для калибровки микрофона нужно загрузить сначала скетч Calibration
PHP код:
#include <uspeech.h>
signal voice(A0);
void setup(){
  
voice.calibrate();
  
Serial.begin(115200);
}
void loop(){
  
//Serial.println(voice.getPhoneme());
  
voice.sample();
  
Serial.println(voice.power()); 

Подключаем микрофон с предусилителем, молчим 1сек. и смотрим на значения в сериал мониторе — это уровень тишины. Если значений много, то нужно определить средний уровень тишины. К примеру — 20, это число нужно добавить к «#define SILENCE«, в файле uSpeech.h библиотеки.
офф сайт
Вложения
Тип файла: rar uspeech.rar (8.9 Кб, 1203 просмотров)
Admin вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 01:57. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика