По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
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
Софт DevOps (англ. development и operations) имеет очень большое значение для огромного количества людей, которые занимаются разработкой программного обеспечения. Для того, чтобы разобраться, что такое программа/путь DevOps и как правильно ее использовать на практике, стоит подробнее поговорить о происхождении этого набора техник. Что такое DevOps, что нужно знать и сколько получают DevOps - специалисты? Что такое практика DevOps? DevOps является одним из самых популярных способов взаимодействия между разработчиками того или иного программного обеспечения. При этом, данная практика включает в себя совокупность процессов по созданию, поддержанию и дальнейшему обслуживанию программного обеспечения. Следует сказать, что каждый процесс не может существовать друг без друга, так как именно на этом строится вся суть взаимодействия между разработчиками программного обеспечения. DevOps состоит из следующих задач, которые необходимо решить разработчикам: Непосредственное создание программного обеспечения, направленного на решение тех или иных производственных задач. Тестирование промежуточных версий или уже готовых продуктов программного обеспечения. Эксплуатация и тестирование готовой продукции на практике. Коротко: DevOps специалист должен знать сети (маршрутизацию, коммутацию) хотя бы на уровне CCNA, знать и уметь пользоваться Linux (знать CLI, основные принципы) и уметь программировать. Желательно фуллстэк – то есть фронтенд часть и бэкенд. Идеально уметь программировать на Python :) Вот что такое DevOps. Именно из этих фаз и состоит DevOps. В результате разработки, тестирования и эксплуатации и создаются все условия, которые так необходимы для качественного использования того или иного софта. Чаще всего используются следующие инструменты: Kubernetes Docker, Ansible Logstash Все эти программы предназначены для работы и управления контейнеризированными приложениями. Кроме того, Logstash позволяет искать информацию, полученную с помощью логов. Графический интерфейс Azure DevOps имеет следующий внешний вид: Для чего нужны циклы DevOps? DevOps является последовательной программой, с помощью которой можно добиться максимального количества полученной прибыли в результате того или иного действия, связанного с разработкой программного обеспечения. Практика показала, что если использовать циклы DevOps, то дневные релизы могут выйти на нормальный уровень. Это приведет к тому, что определенная компания, занимающаяся разработкой программного обеспечения, сможет подтянуть свои производственные мощности и как следует наладить получение прибыли без каких-либо негативных проявлений и последствий. Именно для оптимизации внутреннего цикла релизов программного обеспечения и прочих манипуляций, связанных с разработкой, следует использовать совокупность циклов DevOps. В том случае, если организация выпускает несколько проектов одновременно, с помощью DevOps можно увеличить количество и интенсивность выпускаемого продукта. Чем более разнообразные приложения, тем сильнее компании-разработчика помогут инструменты из DevOps. В чём суть DevOps? Суть данного производства заключается в том, чтобы использовать стандартизированное окружение для разработчиков с целью упростить процесс взаимодействия между элементами. Также внедрение стандартных элементов в классическую в среду разработки приводит к тому, что процесс начинает приобретать более стандартизированную и автоматизированную форму. Именно поэтому крупные предприятия с множественными производственными мощностями обращаются к практике DevOps для того, чтобы получить гораздо более оптимизированную производительную мощность. При этом, идеальным примером практики DevOps является автоматизация не только процессов, но ещё и даты. Для того, чтобы производство не занимало много времени, необходимо четко обозначить даты. Эти даты нельзя нарушать, так как дедлайн должен обязательно дисциплинировать разработчиков и не давать им возможности срывать сроки. Какие инструменты имеются в наборе DevOps? Сам по себе, набор практик под названием DevOps включает в себя несколько десятков различных инструментов. На сегодняшний день в список данных инструментов входят следующие варианты: Code - набор полезных инструментов, используемых в качестве основных способов анализа кода в программе; Build - набор инструментов, благодаря которым можно получать огромное количество информация касательно интеграции одного элемента программы в другой, а также получать статус сборки; Тест - пакет программ для всестороннего изучения промежуточных версий или готового продукта. При этом, данные инструменты включают в себя различные возможности, направленные на тестирование программы под разными нагрузками. Для создания промежуточных версий подойдёт инструмент под названием Пакет. При этом, в пакет входит набор артефактов и автоматическая установка приложения. С помощью данного набора программ можно создать всевозможные условия, под которыми основной продукт будет распространяться на персональные компьютеры или мобильные телефоны конечного потребителя. Релиз - ещё один пакет программ, позволяющий управлять изменениями в готовом продукте. Самое интересное, что сюда входят пакеты программ, предназначенных для налаживания выпуска и утверждения определённых партий. Для управления конфигурациями нужно налаживать инфраструктуру. Одноимённой пакет программ нужен для того, чтобы положить определенную коммуникацию между элементами производства. Всё, что с этим связано, может быть использовано в качестве основных инструментов для реализации ряда идей, связанных с прокладывания инфраструктуры. И, наконец, сюда входит так называемый мониторинг, целиком и полностью предназначенной для отладки ошибок, использования готового продукта, а также создания различных условий для его эксплуатации. Сюда можно отнести различные тесты и прочие синтетические инструменты определения эффективности работы программы. Главные участники DevOps Практика включает в себя следующих участников: Прежде всего, в DevOps можно включить все изменения, которые были проведены в штате разработчиков, а также самой программе. Само собой, сюда нужно включить и самих разработчиков, которые трудятся над данной программой. Наборы операций с элементами программ. Сюда входит отдел, занимающийся оценкой качества того или иного продукта. Сюда можно отнести также гарантию качества конечного изделия. Административный отдел осуществляет управление и поддержку готового продукта, а также создание благоприятных условий для оптимизации производства. Сюда также стоит включить координаторов операций. Все действия, которые происходят внутри пакета DevOps, направленный на полную автоматизацию и оптимизацию производства и разработки программного обеспечения и прочих продуктов. В отличие от своих конкурентов, пакет DevOps не ограничивает разработку, а всего лишь привносит в процесс больше порядка и логики. Для чего нужно использовать DevOps? DevOps решает следующие цели: Перво-наперво, это максимальное сокращение затраченного на разработку времени. При этом, сокращение ведёт не только к удешевлению конечного продукта, но ещё и отсутствию срывов дедлайна. Таким образом, конечные продукты смогут выходить гораздо чаще и стабильнее. При этом, это касается как полноценных программ, так и всевозможных патчей вместе с исправлениями. Те компании, которые практиковали DevOps, теперь реже отказываются от новых разработок и релизов. Само собой, с первым пунктом также уменьшилось количество исправлений, связанных с критическими ошибками. Теперь выпускать патчи стало гораздо удобнее для разработчика и издателя. В том случае, если во время создания того или иного продукта произошёл сбой, восстановиться гораздо проще, нежели это было раньше. Это неудивительно, ведь автоматизированное производство позволяет заменить недостающие элементы на другие, при этом не подставив весь штат. В чём заключаются основные преимущества DevOps? Преимуществ использования DevOps масса. Так, например, практика показала, что данный набор действий позволяет автоматизировать и оптимизировать производство таким образом, чтобы все эти манипуляции не коснулись непосредственно самого процесса создания конечного продукта. При этом, архитектура DevOps позволяет разработчикам экспериментировать с различными деталями и элементами системы, тем самым, не ограничивая разработчиков в полете творческой мысли. Теперь разрабатывать конечные продукты гораздо проще, чем это было раньше.
img
Информационные технологии стали важнейшей частью нашей жизни: прямо сейчас по одному клику можно вызвать такси
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59