По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Друзья, сегодня речь пойдет о синтезе речи в Asterisk. Этот простой способ позволит вам озвучивать требуемое голосовое сообщение в структурах IVR или обычных приветствиях. Да где угодно. Профит этого решения: Единый голос для всех аудио – файлов; Кэширование и сохранение озвученных текстов, фраз в виде медиа - файлов, для последующего использования на Asterisk; Получаем токен Приступим. Прежде всего нужно получить API - токен на использование сервиса от Яндекс. Этот процесс расписан в статье по ссылке ниже (раздел Получение API - токена Yandex.SpeechKit): Получение токена Возвращайтесь с токеном и будем приступать к коду :) Кодим! Для начала создадим директорию /var/lib/asterisk/tts/ и дадим права. Там мы будем хранить текстовый файл, благодаря которому, сможем идентифицировать аудио – файлы по совпадению MD5 названия. Внутри файла будет фраза: mkdir /var/lib/asterisk/tts/ chown asterisk:asterisk /var/lib/asterisk/tts/ chmod 775 /var/lib/asterisk/tts/ В зависимости от дистрибутива и вариантов установки IP – АТС Asterisk, звуковые файлы могут располагаться в другой директории. Вы можете самостоятельно поправить это в скрипте. Использовать будем AGI приложение. Традиционно, комментарии к коду прикладываются: #!/usr/bin/php -q <?php error_reporting(0); // выключаем ошибки, необязательно, нужно в процесcе дебага скрипта require('phpagi.php'); $agi = new AGI(); $str = $agi->request['agi_arg_1']; //записываем в переменную текст, который необходимо озвучить $str = iconv('cp1251', 'utf-8', $str); // конвертируем в кириллическую кодировку $md5 = md5($str); //вычисляем md5 - хэш от переменной $str $prefix = '/var/lib/asterisk/sounds/ru/custom/'; //устанавливаем директорию для файлов. Мы ее создавали по ходу движения $filename = $prefix.$md5; //устанавливаем название файла(оно будет равно md5 текста) $format = 'wav'; //устанавливаем формат получаемого файла от Яндекс $quality = 'hi'; //устанавливаем качество $speaker = 'oksana'; //выбираем голос. На момент написания статьи доступны женские голоса: jane, oksana, alyss и omazh и мужские голоса: zahar и ermil. $emotion = 'evil'; // выбираем интонацию голоса, good — радостный, доброжелательный, evil — раздраженный, neutral — нейтральный (используется по умолчанию). Будем злее :) $speed = '0.9'; // данный параметр отвечает за скорость (темп) речи, подбирается опытным путем на слух, в данном случае оптимальный $key = 'Ваш_токен'; //ваш токен, который вы получили ранее. if (!file_exists($filename.'.wav')) { $qs = http_build_query(array("format" => $format,"quality" => $quality,"lang" => "ru-RU","speaker" => $speaker,"speed" => $speed,"key" => $key,"emotion" => $emotion, "text" => $str)); //формируем строку запроса $ctx = stream_context_create(array("http"=>array("method"=>"GET","header"=>"Referer: "))); $soundfile = file_get_contents("https://tts.voicetech.yandex.net/generate?".$qs, false, $ctx); //запрашиваем файл $file = fopen("file1.wav", "w"); //открываем файл для записи fwrite($file, $soundfile); // пишем в файл данные fclose($file); //закрываем файл shell_exec('sox -t raw -r 48k -e signed-integer -b 16 -c 1 file1.wav -t wav -r 8k -c 1 '.$filename.'.wav'); //конвертируем файл под требования Asterisk и закидываем в директорию для аудио shell_exec('chown asterisk:asterisk '.$filename.'.wav'); shell_exec('chmod 775 '.$filename.'.wav'); // даем файлу нужные пермишны; shell_exec('rm -f file1.wav'); // удаляем файл, который создали в процессе обращения к API; shell_exec('echo '.$str.' > /var/lib/asterisk/tts/'.$md5.'.txt'); // добавляем магии ;-) о ней ниже в тексте статьи. } $agi->exec('Playback',"custom/$md5"); //проигрываем файл звонящему. Скачать скрипт синтеза речи После загрузки файла, сохраните его с расширением .php Сохраняем скрипт как texttospeech.php и закидываем его в директорию /var/lib/asterisk/agi-bin. После, даем последовательность следующих команд: dos2unix /var/lib/asterisk/agi-bin/texttospeech.php chown asterisk:asterisk /var/lib/asterisk/agi-bin/texttospeech.php chmod 775 /var/lib/asterisk/agi-bin/texttospeech.php Как вы могли заметить, скрипт настраивается. Голос, интонация, скорость речи, качество получаемого файла – подлежат корректировке для вашей задачи. Схема работы всего процесса следующая: Скрипт получает из диалплана текст по AGI и сохраняет в переменной; Если у нас уже существует аудио – файл для заранее записанной фразы, мы отдаем в диалплан команду на воспроизведение. Если нет – обращаемся к API; Скрипт отправляет запрос в сторону API Яндекса; Происходит конвертация полученного аудио – файла в нужный формат; Даем права файлу для воспроизведения на Asterisk и удаляем временный файл; Делаем отметку о создании файла в служебный текстовый файл; Воспроизводим файл; А как заставить скрипт работать? Очень просто. Открываем файл /etc/asterisk/extensions_custom.conf для редактирования и добавляем в него следующую запись: [text_to_speech] exten => s,1,Answer() exten => s,2,AGI(texttospeech.php,"Привет! Это Мерион Нетворкс. Если ты слышишь это сообщение, значит все сделал правильно!") Сохраняем изменения и прыгаем в FreePBX. Будем вызывать кастомный контекста из FreePBX. Для этого воспользуемся модулем Custom Destinations. Переходим по пути Admin → Custom Destinations и нажимаем Add Destination: Настроили и сохранили. Наша задумка такова – человек звонит на наш номер, набирает 13 и попадает на синтезированное сообщение. Переходим в главный IVR и в секции IVR Entries добавляем следующее: Звоним, проверяем. Работает :) Если хотите заменить фразу, которую нужно озвучить, просто поправьте ее в файле /etc/asterisk/extensions_custom.conf.
img
SugarCRM - самая распространенная в мире CRM (customer relationship management) или система взаимоотношений с клиентом, являющаяся системой с открытым кодом, или проще говоря «Open Source». Созданная в 2004 году, на текущий момент SugarCRM удовлетворяет потребности свыше 7 000 клиентов, которые создают маркетинговые кампании, увеличивают продажи, повышают лояльность клиентов и используют различные бизнес приложения. Уникальность SugarCRM заключается в том, что это «Open Source» приложение, а следовательно, оно доступно всем пользователям, будь то разработчик или конечный клиент продукта. Получив исходный код, клиент имеет возможность самостоятельно управлять информацией и приложениями внутри CRM и инсталлировать ее в зависимости от требований. Рассмотрим возможные редакции SugarCRM: Community Edition (CE) - CE распространяется в рамках лицензии AGPLv3. С 2004 года, CE скачало больше 8 миллионов человек. Данная версия обеспечивает базовый функционал для отдела продаж, маркетинга, поддерживает автоматизацию процессов, пользователей и соответствующих прав. В рамках Community Edition, доступны такие модули как Studio и Module Builder, которые позволяет исправлять ту или иную настройку под конкретное предприятие. Распространяется бесплатно. Professional Edition (PE) - PE - коммерческое издание SugarCRM, которое устанавливается на базе CE и имеет расширенный функционал. Из всех доступных опций, отметим наиболее важные: Поддержка «Команд», в рамках которых, можно группировать пользователей по правилам отделов, департаментов или рабочего функционала. Мощный механизм построения отчетности, который позволяет создавать собственные отчеты по работе сотрудников в виде круговых диаграмм, графиков и статистических данных. Специально оптимизированная для мобильных телефонов WEB – версия SugarCRM, которая полностью совместима с iPhone и Android смартфонами. Плагины для Microsoft Office, Outlook, Word и Excel. Corporate Edition (CorpEd) - Это новая редакция добавлена вместе с релизом версии 6.2, позволяет выстроить следующий функционал поверх существующей PE инсталляции: Расширенная мобильная версия, которая позволяет хранить данные в режиме оффлайн, совместимо с iPhone, iPad и Blackberry платформами. Более высокий уровень технической поддержки клиента. Enterprise Edition (EE) - Перечислим дополнительные опции версии EE: Улучшенная система отчетности Оффлайн клиент для работы сотрудников Специальный портал, в рамках которого осуществляется облегченное взаимодействие с SugarCRM Специальный плагин для работы с управленческими процессами и документами Lotus Notes Поддержка базы данных Oracle Высочайший уровень технической поддержки клиента. Ultimate Edition (UE) - UE является самым богатым изданием с точки зрения инструментария и функционала. Ко всем вышеперечисленным функциям добавляются: Коннектор к серверу приложений Lotus Domino Server Самый высокий из возможных сервис технической поддержки Что необходимо для установки SugarCRM? Для базовой инсталляции необходимо: Компьютер/сервер (поддерживается Unix или Windows ОС) WEB – сервер (Apache .x или IIS 6 и 7.x) База данных (MySQL 5.x, SQL Server 2005/2008 или Oracle 10g/11g) Последняя версия PHP для работы с вышеуказанными компонентами (5.2 или 5.3 поддерживается) Браузер для доступа к самой CRM (IE 7/8, Firefox, Safari и Chrome) Если у вас имеется новый дистрибутив Linux, все эти компоненты должны быть доступны из под менеджера пакетов (deb, rpm). Сам по себе инсталлятор это набор web – процедур. Все что нужно, это распаковать скачанный пакет в корне web – сервера и открыть эту директорию через интернет браузер. Пошаговый инсталлятор запросит необходимую информацию и произведет установку.
img
В данной статье будет рассмотрен самый быстрый и удобный способ создания нового экстеншена на FreePBX 13 и последующей регистрацией его на SIP-телефоне Yealink SIP-T21P E2. Пошаговое видео Настройка Интерфейс серьезно изменился по сравнению с предыдущей версией, в частности, теперь есть разбивка по типам экстеншенов, и, главное – появился инструмент быстрого создания экстеншенов. Как видно на скриншоте выше, теперь есть следующие поля: All Extensions Custom Extensions DAHDi Extenstions и пр. типы экстеншенов – PJSIP, CHANSIP и т.д. Ниже находится кнопка добавления экстеншена и, самое важное, кнопка быстрого добавления экстеншена (Quick Create Extension). При нажатии на неё появится окно быстрого добавления (скриншот ниже). Как видно, первые несколько полей, которые должны быть заполнены: Type – для наших целей выбираем Chan_SIP Extension Number – соответственно номер экстеншена в соответствии с планом нумерации Display Name – имя экстеншена, которое будет отображаться на экстеншене Outbound Caller ID – данное поле оставляем пустым, опция форсированной установки требуемого Caller ID при исходящем вызове. Если поле оставить пустым, то будет устанавливаться Caller ID указанный в настройках транка. Email Address – электронный почтовый адрес, если его указать, то может пригодиться при последующей настройке факса. Далее необходимо нажать Next и появляется окно со вторым шагом настройки: Здесь предлагаются следующие настройки: Find Me / Follow Me – опция FMDM позволяет перенаправить звонок с данного экстеншена на другое направление, к примеру экстеншен звонит 7 секунд, а после начинает звонить мобильный телефон сотрудника. Возможны различные сценарии. Create User Manager User – данную опцию можно включить для автоматического создания пользователя, проассоциированного с этим экстеншеном, но так же просто его создать после в опциях экстеншена Enable Voicemail – активировать голосовую почту для экстеншена и обозначить пароль (PIN) для голосовой почты Если перейти обратно в Applications – Extensions, и выбрать поле All Extensions или CHAN_SIP, выбрать экстеншен, который был создан нами в предыдущем шаге и нажать на кнопку редактирования, то появится следующее окно: Как видно, здесь указаны такие параметры как: Используемая технология и её порт (в случае CHAN_SIP) – 5061 Имя экстеншена Автоматически сгенерированный пароль Настройки User Manager – на скриншоте был создан пользователь test, подключенный к экстеншену 6996 и пароль для него. На этом настройка экстеншена закончена – необходимо скопировать пароль для экстеншена в буфер обмена, нажать кнопку Submit и затем Apply Config. Настройка Yealink SIP-T21P E2 Переходим к настройке телефона Yealink SIP-T21P E2: Необходимо попасть на веб-интерфейс телефона, для чего нужно ввести его адрес (к примеру, 192.168.1.5) и далее появится окно авторизации : После логина, необходимо нажать на кнопку «Аккаунт» Далее необходимо отметить опцию «Аккаунт» → «Включено», ввести лейбл (ярлык), отображаемое имя и имя регистрации (номер экстеншена). Имя пользователя можно оставить пустым, а можно продублировать значение «Имя регистрации». В качестве пароля используем автоматически сгенерированную строку Secret, которую вставляем в это поле. После этого обозначается адрес SIP-сервера и порт (в нашем случае - 5061). На этом настройка заканчивается, необходимо нажать «Сохранить» и телефон должен зарегистрироваться и начать работать.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59