Воскресенье, 24 мая 2015 03:40

Синтез и распознавание речи с API SpeechCloud

Автор 


Как это реализовано у нас. В шаблон материала K2 - профессии (используется для отображения страниц профессий в проекте Профориентация и для категорий статей из НИОКР), вставлен код: 

<?php $speech=strip_tags($this->item->introtext); //берём вводный текст материала, убираем из него html теги
      $speech = substr($speech, 0, 1450);?> //обрезаем до 1450 символов
<iframe src="https://tts.voicetech.yandex.net/generate?text=
<?php echo $speech; ?>&format=mp3&lang=ru-RU&speaker=jane&key=ключ" width="100%" height="50" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen> //запрос берём в виде фрейма
</iframe>

Цветами помечены установленные нами параметры.

Чтобы робот прочёл текст в любой статье, нужно вставить:

<source><iframe src="https://tts.voicetech.yandex.net/generate?text=Любой текст&format=mp3&lang=ru-RU&speaker=jane&key=ключ" width="100%" height="30" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe></sourсe>

c - русская, чтобы робот не прочёл:)

Примеры: API SpeechCloud

Необходимое к прочтению:

 

 
 

Ограничения по использованию технологии

 

Технологические: Принимая во внимание нижеприведенные сведения по дине url и Get запроса(в слайдерах), не стоит использовать URL длиной более 2,000 символов. В противном случае такие ссылки не будут работать примерно у 60% пользователей интернет. 

SpeechKit Mobile: Максимальный размер фрагмента — 1 МБ=1048576 байт. 1 байт=1 буква(символ) (указано на сайте Яндекса)

Коммерческие: Если количество голосовых обращений к вашему приложению не превышает 10 000 запросов в сутки, использовать SpeechKit Mobile SDK можно бесплатно.

Если число запросов превышает указанный порог — напишите нам, чтобы обсудить условия сотрудничества. Стоимость услуги зависит от количества и объемов запросов (средняя цена — $5 за 1000 запросов).

Тестированием установлен предел синтеза в 1 запросе - до 1450 знаков с пробелами

 

 

Какой максимальной длины может быть url

 

Браузеры

Microsoft Internet Explorer:Начиная с четвертой версии браузера, максимальная длина воспринимаемого URL составляет 2,083 символов. При этом длина GET-запроса лимитирована 2,048 символа. На POST никаких ограничений, понятное дело, не накладывается.

Firefox:В старых версиях (1.5.x) было ограничение на 64 килобайта, но, вполне возможно, это был баг, который позже исправили. Теперь, по всей видимости, ограничения на длину URL снято вообще, либо оно существенно превышает «пределы разумного» (проверено, что Firefox может «съесть» URL длиной в 100,000 символов).

Safari:Лимита на длину URL нет так же, как и в Firefox. Автор FAQ успешно протестировал адрес длиной 80,000 символов.

Opera:** По заявлению разработчиков,лимита нет. Успешно прошли тесты с 190,000 символами.

Серверы

Apache:Строго говоря, ограничение длины URL можно менять в конфигурации сервера параметрамиLimitRequest*, поэтому все зависит от конкретного случая. Но существуют значения по-умолчанию, которые часто оставляют неизменными. Они лимитируют длину URL (точнее, любой строки HTTP-запроса) значением в 8 килобайт. В более ранних версиях Apache было 4 килобайта.

Microsoft Internet Information Server:По-умолчанию, длина URL ограничена пределом в 16 килобайт. При необходимости, значение можно увеличить. Немного странно, что сервер Microsoft не накладывает столь же жестких ограничений на этот параметр, как и браузер.

Perl HTTP::Daemon:8,000 символов на длину URL и 16 килобайт для суммарного объема HTTP-заголовка. Лимит несложно снять, для чего потребуется откорректировать значения16×1024 в файлеDaemon.pm.

Общие рекомендации

Принимая во внимание приведенные сведения, конечно же не стоит использовать URL длиной более 2,000 символов. В противном случае такие ссылки не будут работать примерно у 60% пользователей интернет.

Чаще всего, этой величины будет вполне хватать, т.к. если речь идет о передаче большого объема информации с клиента на сервер, по многим причинам (для безопасности, например) рекомендуется отдавать предпочтение методу POST. То-есть делать так:

<form action="myscript.php" method="POST">
...
</form>

GET же предназначен для адресации страниц с динамическим контентом, чье содержимое не меняется при каждом повторном обращении. Самый распространенный тому пример — отчеты поисковых систем.

В общем случае, если данные не требуются для повторной генерации идентичной веб-страницы, такие данные не должны быть частью URL.

Когда необходимость в объемных URL все-таки присутствует, можно использовать разные алгоритмы кодирования для сокращения их длины. Один из примеров был приведен в уже упоминавшемсяпосте о Google Chart, на примере специального формата записи данных для построения диаграмм. В особо-тяжелых случаях можно сжимать данные gzip-ом с последующим кодированием в BASE64, но лучше, конечно, по возможности избегать таких вещей. Более красивым решением может быть использование базы данных для хранения на сервере параметров каждого запроса. В таком случае URL сможет содержать только короткий идентификатор необходимой записи.

 

 

Ограничение на длину GET запроса

 

2006-10-13: Although the specification of the HTTP protocol does not specify any maximum length, practical limits are imposed by web browser and server software.

Microsoft Internet Explorer (Browser)

Microsoft states that the maximum length of a URL in Internet Explorer is 2,083 characters, with no more than 2,048 characters in the path portion of the URL. In my tests, attempts to use URLs longer than this produced a clear error message in Internet Explorer.

Firefox (Browser)

After 65,536 characters, the location bar no longer displays the URL in Windows Firefox 1.5.x. However, longer URLs will work. I stopped testing after 100,000 characters.

Safari (Browser)

At least 80,000 characters will work. I stopped testing after 80,000 characters.

Opera (Browser)

At least 190,000 characters will work. I stopped testing after 190,000 characters. Opera 9 for Windows continued to display a fully editable, copyable and pasteable URL in the location bar even at 190,000 characters.

Apache (Server)

My early attempts to measure the maximum URL length in web browsers bumped into a server URL length limit of approximately 4,000 characters, after which Apache produces a "413 Entity Too Large" error. I used the current up to date Apache build found in Red Hat Enterprise Linux 4. The official Apache documentation only mentions an 8,192-byte limit on an individual field in a request.

Microsoft Internet Information Server (Server)

The default limit is 16,384 characters (yes, Microsoft's web server accepts longer URLs than Microsoft's web browser). This is configurable.

Perl HTTP::Daemon (Server)

Up to 8,000 bytes will work. Those constructing web application servers with Perl's HTTP::Daemon module will encounter a 16,384 byte limit on the combined size of all HTTP request headers. This does not include POST-method form data, file uploads, etc., but it does include the URL. In practice this resulted in a 413 error when a URL was significantly longer than 8,000 characters. This limitation can be easily removed. Look for all occurrences of 16x1024 in Daemon.pm and replace them with a larger value. Of course, this does increase your exposure to denial of service attacks.

 

 

Синтез речи

 

 

 

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

Технология синтеза речи Яндекса построена на базе скрытых марковских моделей (HMM). За счет применения статистического подхода в акустическом моделировании удается достичь естественных плавных интонаций. Технология позволяет достаточно быстро создавать новые голоса и синтезировать различные эмоции.

Синтез речи Яндекса позволяет выбрать:

  • мужской или женский голос для озвучивания;
  • эмоции: добрый, злой, нейтральный голос.

Язык

Технология поддерживает русский язык.

Использование технологии

Технология синтеза речи Яндекса доступна разработчикам в виде:

 

 Документация

 

Технология синтеза речи позволяет переводить текст в речь с помощью GET‑запросов по адресу:

https://tts.voicetech.yandex.net/generate

Формат запроса

https://tts.voicetech.yandex.net/generate?
  text=<текст для генерации>
& format=<формат аудио файла>
& lang=<язык>
& speaker=<голос>
& key=<API‑ключ>
& [emotion=<окраска голоса>]
& [drunk=<окраска голоса>]
& [ill=<окраска голоса>]
& [robot=<окраска голоса>]
text

Текст для генерации. Для передачи слов-омографов используйте%2bили%27перед ударной гласной. Например,гот%2bов.

format

Формат аудио файла в ответе. Возможные значения:mp3,wav.

lang

Сейчас поддерживается только русский язык, значение параметра:ru‑RU.

speaker

Возможные значения:jane,zahar. Синтез речи Яндекса поддерживает 1 мужской и 1 женский голос.

key

Бесплатный API‑ключ. Вы можете получить API‑ключ вКабинете разработчика.

emotion (необязательный)

Возможные значения:good,neutral,evil,mixed.

drunk (необязательный)

Возможные значения:true,false.

ill (необязательный)

Возможные значения:true,false.

robot (необязательный)

Возможные значения:true,false.

Пример запроса

http://tts.voicetech.yandex.net/generate?text="Наш%20текст%20гот%2bов"&format=mp3&lang=ru-RU&speaker=zahar&key=<API‑ключ>

 

 

 

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

 

SpeechKit Cloud API позволяет распознавать голосовые пользовательские запросы, передаваемые сервису посредством HTTPS.

API открыт для всех пользователей Яндекса и отвечает по адресу:

https://asr.yandex.net/

Формат запроса

Запрос на распознавание речи следует отправлять с помощью метода POST.

https://asr.yandex.net/asr_xml?
  uuid=<уникальный идентификатор пользователя>
& key=<API-ключ>
& topic=<тема голосового запроса>
& [lang=<язык запроса>]
uuid

Universally Unique Identifier— строка из 32-х шестнадцатеричных символов без дефисов.

UUID должен формироваться случайным образом и быть уникальным для каждого пользователя приложения или сервиса.

key

API-ключ. Вы можете получить API-ключ вКабинете разработчика.

topic

Языковая модель, которую следует использовать при распознавании:

  • queries— для поисковых запросов и коротких фраз (3—5 слов) на различную тематику

    Например:

    • [покажи следующий поворот]
    • [соединить с отделом продаж]
    • [еще чашку кофе и две мягких французских булочки]
    • [какая погода во Владивостоке?]
    • [напомни купить овощей и фруктов по дороге домой]
  • notes— для свободной диктовки коротких текстов, SMS, заметок, комментариев и т. п.

    Например:

    • [Редко, где можно ощутить себя как дома. Но теперь есть еще одно приятное местечко, где можно получить долю уюта и теплую чашку какао в любое время суток. Попробуйте лимонный эклер с базиликом — вкусно и необычно. Рекомендую.]
  • maps— для ввода адресов, названий географических объектов и организаций.

    Например:

    • [поехали на улицу Кирпичные выемки 5]
    • [сколько ехать от Льва Толстого до Новой Земли?]
    • [покажи маршрут до музея Маяковского]
  • music— для запросов на музыкальную тематику (названия песен и групп, имена исполнителей).

    Например:

    • [третий концерт Рахманинова для фортепиано с оркестром]
    • [Алла Пугачева — Любовь похожая на сон]
https://yastatic.net/doccenter/_/BH9cInbk3Cy19Rlbf-fL8g3W1bQ.png) 0px 2px no-repeat;">Внимание! Для обеспечения высокого качества распознавания голосовых запросов параметрtopicдолжен соответствовать тематике передаваемых системе запросов.
lang (необязательный)

Язык запроса:

  • ru-RU— русский язык (для всех значенийtopic).
  • tr-TR— турецкий язык (только дляtopic=queries,maps).

Запрос может быть с указаниемcontent-lengthилиchunked.

https://yastatic.net/doccenter/_/IhCM6-TZIxDYiKa94SuZldCbhvk.png) 0px 2px no-repeat;">Совет. Мы советуем указывать в запросахTransfer-Encoding: chunked. Это позволит серверу запустить распознавание параллельно с поступлением данных и выдать результат практически одновременно с окончанием приема звука. Иначе обработка начнется только после поступления всех данных.

Формат аудиоданных запроса

Поддерживаются следующие форматы:

  • audio/x-speex1
  • audio/x-pcm;bit=16;rate=8000
  • audio/x-pcm;bit=16;rate=160002
  • audio/x-alaw;bit=13;rate=8000
  • audio/x-wav3
  • audio/x-mpeg-33,4

Прочие форматы преобразуются в PCM на стороне сервера.

https://yastatic.net/doccenter/_/IhCM6-TZIxDYiKa94SuZldCbhvk.png) 0px 2px no-repeat;">Примечание. x-speexозначает Speex in OGG. Убедитесь, что в потоке присутствуют корректные заголовок OGG и структура кадров. Также проверьте, что для кодирования используется широкополосный сигнал (16kHz).
https://yastatic.net/doccenter/_/IhCM6-TZIxDYiKa94SuZldCbhvk.png) 0px 2px no-repeat;">Совет. Для наилучшего качества распознавания используйте форматaudio/x-pcm;bit=16;rate=16000.
https://yastatic.net/doccenter/_/IhCM6-TZIxDYiKa94SuZldCbhvk.png) 0px 2px no-repeat;">Совет. Форматыaudio/x-wavиaudio/x-mpeg-3рекомендуется использовать только в отладочной версии, так как эти контейнеры не поддерживают потоковый режим. Распознавание запроса начинается только когда он будет целиком передан на сервер. Это может существенно увеличивать общее время ответа в условиях медленных сетей (до + 4 секунд для запросов до 300 КБ). По этой же причине запросы в форматахaudio/x-wavиaudio/x-mpeg-3не рекомендуется передавать потоково (черезchunked encoding).
https://yastatic.net/doccenter/_/IhCM6-TZIxDYiKa94SuZldCbhvk.png) 0px 2px no-repeat;">Примечание. Подaudio/x-mpeg-3подразумевается MPEG-1 Audio Layer 3 (MP3).

Пример запроса

POST /asr_xml?uuid=01ae13cb744628b58fb536d496daa1e6&key=developers-simple-key&topic=maps HTTP/1.1
Content-Type: audio/x-speex
User-Agent: Dalvik/1.2.0 (Linux; U; Android 2.2.2; LG-P990 Build/FRG83G)
Host: asr.yandex.net
Transfer-Encoding: chunked
7d0
...
chunked body

Формат ответа

Ответ возвращается в виде XML, содержащего n-best список гипотез распознавания (до 5 значений) с указанием степени достоверности для каждой гипотезы.

Пример удачного распознавания:

<?xml version="1.0" encoding="utf-8"?><recognitionResults success="1">
    <variant confidence="1">улица басманная</variant></recognitionResults>

Пример неудачного распознавания:

<?xml version="1.0" encoding="utf-8"?><recognitionResults success="0"/>

Полный ответ с заголовком:

HTTP/1.0 200 OK
Connection: close
Content-Length: 172
Content-Type: text/xml; charset=utf-8
Date: Tue, 15 Oct 2013 12:19:37 MSK
Server: YaVoiceProxy2X-YaReq
Finish: 1381825177.247013
X-YaRequestId: 8670a4aa-3572-11e3-98d2-266473e8d061
X-YaUuid: 01ae13cb744628b58fb536d496daa1e6
<?xml version="1.0" encoding="utf-8"?>
<recognitionResults success="1">
     <variant confidence="1">рублевское шоссе дом 22</variant>
</ecognitionResults>
https://yastatic.net/doccenter/_/IhCM6-TZIxDYiKa94SuZldCbhvk.png) 0px 2px no-repeat;">Совет. При обращении в поддержку ссылайтесь на заголовокX-YaRequestIdиз запроса.

Использование cURL для API-запросов

Пример запроса на распознавание содержимого файлаpcm16.wav:

curl -v -4 "asr.yandex.net/asr_xml?key=developers-simple-key&uuid=12345678123456781234567812345678&topic=queries&lang=ru-RU" -H "Content-Type: audio/x-wav" --data-binary "@pcm16.wav"

Реализация на C++

#include <iostream>#include <fstream>#include <string>#include <sstream>#include <curl/curl.h>
 
size_t write_response_data(char *ptr, size_t size, size_t nmemb, void *userdata)
{
  std::stringstream* s = (std::stringstream*)userdata;
  size_t n = size * nmemb;  s->write(ptr, n);
  return n;
} 
size_t read_request_data(char *ptr, size_t size, size_t nmemb, void *userdata)
{
  std::ifstream* f = (std::ifstream*)userdata;
  size_t n = size * nmemb;  f->read(ptr, n);
  size_t result = f->gcount();  return result;
} const char* FILE_PATH = "./pcm16.wav";int main()
{
  CURL *curl = NULL;
  curl = curl_easy_init();
   if (curl)
     {
      curl_easy_setopt(curl, CURLOPT_HEADER, 1);
      curl_easy_setopt(curl, CURLOPT_POST, 1);
      curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
      curl_easy_setopt(curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
      struct curl_slist *headers=NULL;
      headers = curl_slist_append(headers, "Content-Type: audio/x-wav");
      curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
      curl_easy_setopt(curl, CURLOPT_USERAGENT, "Dalvik/1.2.0 (Linux; U; Android 2.2.2; LG-P990 Build/FRG83G");
      curl_easy_setopt(curl, CURLOPT_URL, "asr.yandex.net/asr_xml?key=developers-simple-key&uuid=12345678123456781234567812345678&topic=queries&lang=ru-RU");
      std::ifstream fileStream(FILE_PATH, std::ifstream::binary);
      fileStream.seekg (0, fileStream.end);
      int length = fileStream.tellg();
      fileStream.seekg (0, fileStream.beg);
      curl_easy_setopt(curl, CURLOPT_READFUNCTION, &read_request_data);
      curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, length);
      curl_easy_setopt(curl, CURLOPT_READDATA, &fileStream);
      std::stringstream contentStream;
      curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &write_response_data);
      curl_easy_setopt(curl, CURLOPT_WRITEDATA, &contentStream);
      CURLcode code = curl_easy_perform(curl);
      unsigned httpCode;
      curl_easy_getinfo(curl, CURLINFO_HTTP_CODE, &httpCode);
      std::stringstream msg;
      msg << "Http code is " << httpCode;
      std::cout << contentStream.str();
      curl_free(headers);
      curl_easy_cleanup(curl);
     }
  return 0;
}

Потоковое распознавание

Для обеспечения высокой скороститехнология распознавания речиподдерживает режим потокового распознавания с промежуточными результатами. Как только человек начинает говорить, его речь сразу же маленькими частями передается на сервис распознавания.

Потоковое API работает по принципу websocket, но по более простому протоколу. Клиент начинает соединение с http-рукопожатия, посылая:

GET /asr_partial HTTP/1.1\r\n
User-Agent:KeepAliveClient\r\n
Host: voice-stream.voicetech.yandex.net:80\r\n
Upgrade: dictation\r\n\r\n

Далее клиент должен получить от сервера 101:Receive HTTP 101 Switched response. Это означает, что соединение переключилось в дуплексный потоковый режим. В этом режиме обмен данными происходит через сообщения.

Сообщения передаются в следующем формате:

[hex size]\r\n[message body serialized with protobuf]

Сначала размер сообщения вhexвиде, затем\r\n, затем сериализованное protobuf-сообщение.

В текущем протоколе от клиента может прийти только ConnectionRequest и далее сообщения AddData.

https://yastatic.net/doccenter/_/IhCM6-TZIxDYiKa94SuZldCbhvk.png) 0px 2px no-repeat;">Примечание. Клиент посылает ConnectionRequest, затем AddData, а вычитает сначала ConnectionResponse, а затем по одному AddDataResponse на каждое посланное сообщение AddData. На несколько AddData сообщений может также прийти один ответ AddDataResponse c текущими промежуточными результатами. В этом случае в полеmessagesCountбудет указано, сколько AddData сообщений было объединено.

basic.proto

package BasicProtobuf;
            
message ConnectionResponse
{
    required ResponseCode responseCode = 1;
            
    required string sessionId = 2;
            
    optional string message = 3;
            
    enum ResponseCode {
    OK = 200;
    BadMessageFormatting = 400;
    UnknownService = 404;
    NotSupportedVersion = 405;
    Timeout = 408;
    ProtocolError = 410;
    InternalError = 500;
    }
}

voiceproxy.proto

import "basic.proto";
            
package VoiceProxyProtobuf;
            
message ConnectionRequest
{
  optional int32 protocolVersion = 1 [default = 1];
            
  // leave empty if you are not speechkit
  required string speechkitVersion = 2;
            
  required string serviceName = 3; // "asr_dictation", etc.
            
  required string uuid = 4;
            
  required string apiKey = 5;
            
  required string applicationName = 6;
            
  // vendor:model:type... user defined
  required string device = 7;
            
  // lat.lat,lan.lan
  required string coords = 8;
            
  // "general", "mapsyari", "freeform", "music"
  required string topic = 9;
            
  // "ru-RU"
  required string lang = 10;
            
  // "audio/x-speex", "audio/x-pcm;bit=16;rate=8000", etc.
  required string format =11;
            
  // enable punctuation mode for "freeform-dictation" topic
  optional bool punctuation = 12 [default = true];
            
  optional string deviceName = 13;
 }
            
///////////////////////////////////////////////////////////////////////////
            
message AddData
{
  optional bytes audioData = 1;
            
  required bool lastChunk = 2;
}
            
///////////////////////////////////////////////////////////////////////////
            
message Word
{
  required float confidence = 1;
            
  required string value = 2;
}
            
message Result
{
  required float confidence = 1;
            
  repeated Word words = 2;
            
  optional string normalized = 3;
}
            
message AddDataResponse
{
  required BasicProtobuf.ConnectionResponse.ResponseCode responseCode = 1;
            
  repeated Result recognition = 2;
            
  // if true : recognition contains fully parsed N-best list (n results with n words)
  // otherwise recognition contains just 1 result 1 word with current "partical result"
  optional bool endOfUtt = 3 [default = false];
            
  // how many AddData requests were merged for this response
  optional int32 messagesCount = 4 [default = 1];
}

Пример на Python и JavaScript см. наGitHub.

 

 

Условия использования сервиса «Yandex SpeechKit Mobile SDK»

 

Общество с ограниченной ответственностью «ЯНДЕКС» (далее — «Яндекс») предлагает пользователю сети Интернет (далее — «Пользователь») использовать сервис «Yandex SpeechKit Mobile SDK» на условиях, изложенных в настоящем документе (далее — «Условия»).

1. Общие условия

1.1. Термины и определения

"Сервис" — сервис «Yandex SpeechKit Mobile SDK», представляющий собой интерфейс программирования, предназначенный для распознавания и синтеза речи.

"API-Ключ" — уникальный идентификатор, выдаваемый Пользователю, позволяющий получить доступ к функциям Сервиса в мобильном приложении.

"Данные" — сведения, поступающие от Сервиса, предназначенные для предоставления Пользователям, включая, но не ограничиваясь, результаты распознавания речи, результаты синтеза речи, пользовательские данные.

1.2. Использование Пользователем Сервиса регулируется настоящими Условиями, а также:

1.3. Начиная использовать Сервис или его отдельные функции, в том числе получив API-ключ, зарегистрировавшись на Сервисе, разместив код Сервиса в мобильном приложении или воспользовавшись любой другой функциональной возможностью, предоставляемой Сервисом, Пользователь принимает настоящие Условия, а также условия всех указанных в п. 1.2 Условий документов, в полном объеме, без всяких оговорок и исключений, и обязуется соблюдать их. Использование Сервиса на иных условиях, чем условия указанных документов, возможно только по предварительному письменному согласию Яндекса. В случае несогласия Пользователя с какими-либо из условий указанных документов, Пользователь не вправе использовать Сервис.

1.4. Пользователь самостоятельно несет ответственность за соблюдение им Законодательства при использовании Сервиса. Везде по тексту настоящих Условий, если явно не указано иное, под термином «Законодательство» понимается любое применимое законодательство, включая как законодательство Российской Федерации, так и законодательство места пребывания Пользователя или места совершения им юридически значимых действий в соответствии с настоящими Условиями. Если использование Пользователем какой-либо возможности, предоставляемой Сервисом, нарушает Законодательство, Пользователь обязуется воздержаться от использования Сервиса.

1.5. К настоящим Условиям и отношениям между Яндексом и Пользователем, возникающим в связи с использованием Сервиса, подлежит применению право Российской Федерации.

2. Условия использования Сервиса

2.1. Для получения доступа к Сервису Пользователь должен получить API-ключ, для чего зарегистрироваться в личном кабинете по ссылке:https://developer.tech.yandex.ru. После регистрации Пользователя в личном кабинете Яндекс активирует API-ключ, о чем Пользователь получает уведомление по почте, указанной при регистрации. Яндекс вправе по своему усмотрению отказать в доступе к Сервису без объяснения причин. Пользователь не имеет права использовать любые программы, устройства или иные средства, позволяющие получить API-Ключ автоматическим путем или иным образом с нарушением процедуры, установленной Яндексом.

2.2. Пользователь вправе использовать Сервис только в рамках мобильных приложений, если иное не установлено отдельным соглашением между Пользователем и Яндексом.

2.3. Пользователь может использовать данные и функции, полученные при помощи Сервиса, только в рамках функциональности, предоставляемой Сервисом.

2.4. При использовании Сервиса Пользователь обязан разместить в описании мобильного приложения в соответствующих разделах «О Программе» и «Помощь», а так же на официальной странице мобильного приложения (либо в магазинах приложений в разделе «Описание») обязательное указание на технологию Яндекса путем размещения логотипа Яндекса и текста "Использует сервис "Yandex SpeechKit Mobile SDK" с гиперссылкой наhttps://tech.yandex.ru/speechkit/mobilesdk/. Размещение логотипа Яндекса должно соответствовать Правилам использования логотипа Яндекса (http://company.yandex.ru/about/logotype/rules.xml). Указание на технологию Яндекса должно быть доступно для ознакомления пользователям мобильных приложений на первом экране раздела «О Программе» и «Помощь», а так же на официальной странице мобильного приложения (либо в магазинах приложений в разделе «Описание») таким образом, чтобы пользователю не нужно было совершать дополнительные действия для ознакомления с указанием на технологию Яндекса (пролистывать страницу, переходить на другую страницу и т.д.). При использовании Сервиса пользователь не имеет права удалять, скрывать или модифицировать товарные знаки, логотипы, ссылки или иные указания на Яндекс или иных лиц, равно как и любые другие уведомления и/или информацию, передаваемые Сервисом.

2.5. При использовании Сервиса Пользователь вправе использовать собственный графический интерфейс пользователя (GUI) с обязательным размещением в таком интерфейсе гиперссылки на описание Сервиса (https://tech.yandex.ru/speechkit/mobilesdk/) и логотипа Яндекса в соответствии с Правилами размещения логотипа Яндекса (http://company.yandex.ru/about/logotype/rules.xml).

2.6. Яндекс оставляет за собой право устанавливать любые лимиты и ограничения в отношении использования Сервиса и может менять их по собственному усмотрению, без предварительного письменного уведомления Пользователей.

2.7. Распознавание и синтез речи. Функции распознавания и/или синтеза речи могут быть использованы только для мобильных приложений, использующих Сервис. Доступ к функциям распознавания и/или синтеза речи Сервиса можно получить только с помощью уникального API-Ключа, выдаваемого Яндексом. Суммарное количество обращений к функциям распознавания и синтеза речи ограничено 10000 запросов для одного API-Ключа в сутки. При необходимости увеличения максимального количества обращений к функциям распознавания речи и/или синтеза речи, Пользователь вправе обратиться с соответствующим запросом на адресspeechkit@support.yandex.ru. Увеличение максимального количества обращений к функциям распознавания и/или синтеза речи осуществляется по усмотрению Яндекса.

2.8. Пользователь не имеет права изменять, декомпилировать и/или каким либо образом модифицировать программный код и ресурсы, полученные посредством Сервиса.

2.9. Пользователь не имеет права использовать Сервис для создания интернет-сервисов, программ для ЭВМ, мобильных приложений, в целях проведения исследований и/или создания технологий распознавания и/или синтеза речи, а также использовать Сервис иным образом, если такое использование влечет нарушение Законодательства, документов, указанных в п. 1.2 Условий, и/или прав и законных интересов третьих лиц.

2.10. Пользователь настоящим уведомлен и соглашается, что Яндекс вправе получать обезличенные (без привязки к Пользователю) статистические сведения об использовании Сервиса и техническую информацию об устройстве Пользователя, в частности, информацию о модели, производителе и операционной системе устройства, информацию о местонахождении Пользователя. Такие сведения и такая информация обрабатываются Яндексом по правилам Политики конфиденциальности.

2.11. Яндекс оставляет за собой право изменять, исправлять или обновлять Сервис в любой момент, без предварительного уведомления Пользователя. При выпуске очередной стабильной версии Яндекс сообщает о её выпуске на веб-страницах Сервиса. После выпуска новой версии Сервиса Яндекс не гарантирует стабильность и продолжительность работы его устаревших версий. Пользователь, не согласный использовать обновленную версию Сервиса, может либо продолжать на свой страх и риск использовать устаревшую версию Сервиса, либо прекратить использование Сервиса, удалив соответствующий код с сайта (-ов) Пользователя.

2.12. Яндекс имеет право по собственному усмотрению прекратить или приостановить доступ Пользователя к Сервису без уведомления и без объяснения причин, в частности, в случае нарушения Пользователем требований настоящих Условий.

3. Интеллектуальные права

3.1. Исключительное право на Сервис принадлежит Яндексу. Исключительные права на Данные принадлежат Яндексу или иным правообладателям. Настоящие Условия не дают Пользователю каких-либо прав на использование Сервиса или Данных помимо тех возможностей, которые предоставляются непосредственно в интерфейсе Сервиса в соответствии с настоящими Условиями.

3.2. Используя Сервис, Пользователь предоставляет Яндексу право использовать логотип, товарный знак и/или фирменное наименование Пользователя и/или сайта Пользователя в информационных, рекламных и маркетинговых целях без необходимости получения дополнительного согласия Пользователя и без выплаты ему какого-либо вознаграждения за такое использование.

4. Отказ от ответственности

4.1. Сервис (включая Данные) предоставляется Яндексом «как есть». Яндекс не гарантирует соответствие Сервиса и Данных целям и ожиданиям Пользователя, бесперебойную и безошибочную работу Сервиса в целом и отдельных его компонентов и/или функций, а также не гарантирует достоверность, точность, полноту и своевременность Данных. Яндекс не гарантирует бесперебойную и безошибочную работу сторонних программных продуктов и решений (в т.ч. библиотек), рекомендованных при использовании Сервиса в технических условиях и иной документации, связанной с его использованием.

4.2. Пользователь самостоятельно и в полном объёме несёт ответственность за использование и сохранность своего API-Ключа. Пользователь не имеет права получать API-Ключ для третьих лиц, передавать или предоставлять его третьим лицам. Яндекс не несёт ответственности за несанкционированное использование API-Ключа третьими лицами. Все действия, совершенные на Сервисе с использованием принадлежащего Пользователю API-Ключа, считаются совершенными Пользователем.

5. Заключительные положения

5.1. Яндекс имеет право без уведомления по собственному усмотрению прекратить или приостановить доступ Пользователя к Сервису или к отдельным его функциям с использованием его учетной записи и/или API-ключа, без объяснения причин, в том числе, в случае нарушения Пользователем требований настоящих Условий.

5.2. Все вопросы и претензии, связанные с использованием/невозможностью использования Сервиса, должны направляться по адресу электронной почтыspeechkit@support.yandex.ru.

5.3. Яндекс вправе в любое время без уведомления Пользователя изменять текст настоящих Условий. Действующая редакция настоящих Условий размещается по адресу:http://legal.yandex.ru/speechkit/. Новая редакция Условий вступает в силу с момента ее размещения в сети Интернет по указанному в настоящем абзаце адресу. Продолжение использования Сервиса после изменения Условий считается согласием с их новой редакцией. Пользователь обязан прекратить использование Сервиса, в случае если Яндексом были внесены какие-либо изменения в настоящие Условия, с которыми Пользователь не согласен.

Дата публикации 30.10.2014 г.

Предыдущая версия документаhttp://legal.yandex.ru/speechkit/14102014/.

Предыдущая версия документаhttp://legal.yandex.ru/speechkit/13052014/.

Предыдущая версия документаhttp://legal.yandex.ru/speechkit/04022014/.

Предыдущая версия документаhttp://legal.yandex.ru/speechkit/22112013/.

Предыдущая версия документаhttp://legal.yandex.ru/speechkit/11112013/.

Предыдущая версия документаhttp://legal.yandex.ru/speechkit/30092013/.