+ Ответить в теме
Показано с 1 по 6 из 6
  1. #1
    Аватар для Барт Барт Очень опасный тип Барт Очень опасный тип Барт Очень опасный тип Бывалый путешественник
    Сообщений
    604
    Поблагодарили 33 раз(а) в 30 сообщениях

    SpeechKit - Распознавание речи

    Яндекс выпустил распознавание текста из wav записи, давненько уж... Написл под это класс.

    PHP код:
    <?php

    class SpeechKit {
        
        private 
    $file null;
        private 
    $key null;
        
        public function 
    __construct($filename$key "") {
            if(
    extension_loaded('curl')) {
                if(
    is_file($filename)) {
                    
    $this->file $filename;
                    
    $this->key $key;
                }
            }
        }
        
        public function 
    recognize($lang "ru-RU"$topic "queries") {
            
    $uuid $this->genRandomSelect(0,30,64);
            
    $uuid=implode($uuid);    $uuid=substr($uuid,1,32);
            
    $curl curl_init();
            
    $url 'https://asr.yandex.net/asr_xml?'.http_build_query(array(
                
    'key'=> $this->key,
                
    'uuid' => $uuid,
                
    'topic' => $topic,
                
    'lang' => $lang
            
    ));
            
    curl_setopt($curlCURLOPT_URL$url);
            
    $data file_get_contents(realpath($this->file));
            
    curl_setopt($curlCURLOPT_POSTtrue);
            
    curl_setopt($curlCURLOPT_POSTFIELDS$data);
            
    curl_setopt($curlCURLOPT_RETURNTRANSFERtrue);
            
    curl_setopt($curlCURLOPT_SSL_VERIFYPEER0);
            
    curl_setopt($curlCURLOPT_FOLLOWLOCATIONtrue);
            
    curl_setopt($curlCURLOPT_HTTPHEADER, array('Content-Type: audio/x-wav'));
            
    curl_setopt($curlCURLOPT_VERBOSEtrue);
            
    $response curl_exec($curl);
            
    $err curl_errno($curl);
            
    curl_close($curl);
            if (
    $err)
                throw new 
    exception("curl err ${err}");
            
            
    $result simplexml_load_string($response);
            return 
    $result;
        }
        
        private function 
    curlFileCreate($filename$mimetype ''$postname '') {
            return 
    "@$filename;filename="
                
    . ($postname ?: basename($filename))
                . (
    $mimetype ";type=$mimetype'');
        }
        
        private function 
    genRandomSelect($min$max$count) {
            
    $result=array();
            if(
    $min>$max) return $result;
            
    $count=min(max($count,0),$max-$min+1);
            while(
    count($result)<$count) {
                
    $value=rand($min,$max-count($result));
                foreach(
    $result as $used) if($used<=$value$value++; else break;
                
    $result[]=dechex($value);
                
    sort($result);
            }
            
    shuffle($result);
            return 
    $result;
        }
        
    }

    ?>
    Использование
    PHP код:
    $file "speak.wav";
    $key "0442a1ff-3abd-48b6-a115-438d4e01f***"/* ключ получить тут: https://goo.gl/aFmKyp выбираем Cloud Speech Kit */

    $speech = new SpeechKit($file$key);
    $result $speech->recognize("ru-RU");
    $data $result->variant;
    pre(iconv('utf-8''cp1251'$data)); 
    Пример использование с классом Speaker
    PHP код:
    $file "speak.wav";
    $key "0442a1ff-3abd-48b6-a115-438d4e01f***";
    $text "Какая сегодня погода?";

    $speak = new Speaker();
    $speak->saveToFile($file$text);

    $speech = new SpeechKit($file$key);
    $result $speech->recognize("ru-RU");
    $data $result->variant;
    pre(iconv('utf-8''cp1251'$data)); 
    Not enough light

  2. Пользователь сказал cпасибо:

    DDosTeam (19.11.2017)

  3. #2
    Аватар для Феникс Феникс Вообще от рук отбился Прохожий
    Сообщений
    80
    Поблагодарили 3 раз(а) в 3 сообщениях
    Прикольно. Проверить надо бы и нам. Думаю это умно. Молот

  4. #3
    Аватар для gignorie gignorie Очень опасный тип Любопытный
    Сообщений
    37
    Поблагодарили 1 раз в 1 сообщении
    Вот теперь я доволен, молодец, хорошая работа

  5. #4
    Аватар для Vitalik_GT Vitalik_GT Не известно кто Новичок
    Сообщений
    1
    Поблагодарили 0 раз(а) в 0 сообщениях
    Хорошая работа)

  6. #5
    Аватар для sega sega Не известно кто Любопытный
    Сообщений
    46
    Поблагодарили 0 раз(а) в 0 сообщениях
    А это можно использовать в DevelNext?

    P.S. Если нет то как реализовать распознавание речи в DevelNext?
    Sega -> Super energy genius advanced

  7. #6
    Аватар для вова77 вова77 Сенсей вова77 Сенсей вова77 Сенсей вова77 Сенсей вова77 Сенсей Супер Модератор
    Сообщений
    3,517
    Поблагодарили 523 раз(а) в 482 сообщениях
    Цитата Сообщение от sega Посмотреть сообщение
    А это можно использовать в DevelNext?

    P.S. Если нет то как реализовать распознавание речи в DevelNext?
    Для знакомства с технологией предусмотрен бесплатный тестовый период — 1 месяц с момента отправки первого запроса на сервер.

    Чтобы продолжить использовать SpeechKit Cloud после этого, необходимо заключить договор. Можно приобрести пакет (фиксированное количество запросов в месяц) или оплачивать запросы по факту.

    Стоимость лицензии зависит от количества обращений и в среднем составляет 200 рублей за 1000 запросов или 60 копеек за 1 минуту.

    https://tech.yandex.ru/speechkit/cloud/
    Мудрость жизни всегда глубже и обширнее мудрости людей. БОЛЬШЕ ДЕЛА,МЕНЬШЕ СЛОВ
    DevelNext - Официальная группа, уроки ,примеры http://vk.com/develnextstudio
    Фото галерея DevelNext http://vk.com/album-59367531_218210131
    Мой канал youtube https://www.youtube.com/channel/UC0w...9lClt8gt5FPCvg

Ваши права

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