По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
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
Инструменты командной строки, такие как top, затрудняют мониторинг использования процессора и памяти. Поэтому сегодня мы представляем вам vtop - бесплатный и с открытым исходным кодом, простой, но в то же время мощный и расширяемый инструмент мониторинга активности терминала, написанный на Node.js. Он разработан для того, чтобы пользователи могли легко просматривать загруженность процессора при использовании многопроцессорных приложений (те, которые имеют мастер-процесс и дочерние процессы, например, NGINX, Apache, Chrome и т.д.). vtop также позволяет легко увидеть всплески сверхурочного функционирования памяти, а также потребление памяти. vtop использует символы Unicode шрифта Брайля для построения и отображения графиков использования процессора и памяти, что помогает визуализировать скачки. Кроме того, он группирует процессы с одним и тем же именем (мастер и все дочерние процессы) вместе. В этой статье вы узнаете, как установить инструмент мониторинга vtop в Linux. Установка vtop в Linux-системах Требования: в качестве предварительного условия в вашей системе должны быть установлены Node.js и NPM. После того, как на вашей системе установлены Node.js и NPM, запустите следующую команду для установки vtop. При необходимости используйте команду sudo для получения root прав при установке пакета. sudo npm install -g vtop После установки vtop выполните следующую команду, чтобы запустить его. vtop Ниже приведены сочетания клавиш vtop, нажав: u - обновления до последней версии vtop. k или стрелка вверх перемещает процесс вверх по списку. j или стрелка вниз перемещает процесс вниз по списку. g перемещает вас вверх по списку процессов. G перемещает вас в конец списка. dd убивает все процессы в этой группе (сначала нужно выбрать имя процесса). Чтобы изменить цветовую схему, используйте переключатель --theme. Вы можете выбрать любую из доступных тем (такие как: acid, becca, brew, certs, dark, gooey, gruvbox, monokai, nord, parallax, seti, и wizard) К примеру: vtop --theme wizard Для установки интервала между обновлениями (в миллисекундах) используйте --update-interval. В данном примере 20 миллисекунд эквивалентно 0.02 секунды: vtop --update-interval 20 Вы также можете настроить завершение работы vtop через несколько секунд, используя опцию --quit-after, как показано ниже. vtop --quit-after 5 Чтобы получить справку по vtop, запустите следующую команду. vtop -h vtop имеет множество функций, включая выполнение измерений запросов сервера, запись логов и так далее.
img
Всем привет! В этой статье мы расскажем о том, как можно настроить BLF Speed Dial в Cisco Unified Communications Manager (CUCM) . BLF (Busy Lamp Field) – это фича, которая позволяет в реальном времени наблюдать статус другого абонента при помощи индикации на кнопках. Если кнопка быстрого набора горит красным, то это значит, что абонент занят (состояние Off-Hook), а если не горит, то значит что абоненту можно позвонить (состояние On-Hook). В CUCM для этого используется инструмент Native Presence. Настройка BLF Speed Dial Рассмотрим как настраиваются клавиши быстрого набора со световой индикацией. Прежде всего, переходим во вкладку System → Enterprise Parameters и в строке BLF For Call Lists выставляем параметр Enabled. По-умолчанию выставлен Disabled. Далее идем во вкладку Device → Device Settings → Phone Button Template. Здесь либо выбираем уже существующий шаблон, либо создаем новый. Подробнее о настройке шаблонов клавиш на телефонах Cisco можно почить в нашей статье. В открывшемся окне указываем для желаемых клавиш функцию Speed Dial BLF, и после чего сохраняем и применяем настройки. После этого переходим в меню Device → Phone, находим телефон, на котором ходим настроить BLF. Тут в поле Phone Button Template выбираем созданный нами шаблон и нажимаем Save и Apply Config. Слева в меню Association Information должен появиться пункт Add a New BLF SD. Нажимаем на него, и у нас открывается новое окно, где нужно ввести номер назначения, и описание для кнопки, которое будет отображаться на экране. Затем для сохранения настроек нажимаем Save. После этих действий BLF Speed Dial настроен на телефоне. Далее таким же образом можно настроить остальные аппараты.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59