пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅ
Слишком длинный поисковый запрос.
По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Технология TTS (text-to-speech) служит для преобразования текстовой информации в голос. Проще говоря, вы пишите – система проговаривает. В системах телефонной связи такая технология может быть полезна, если необходимо произнести баланс клиента или для озвучивания прочих голосовых сообщений. О том, как настроить TTS в FreePBX 13 с помощью командной строки Asterisk расскажем в статье. Встроенный TTS В FreePBX предусмотрен встроенный движок для TTS, который носит название filte. Движок хорошо отрабатывает английскую речь, но не умеет работать с русской. Вкратце ознакомимся с его настройкой. Тут все достаточно тривиально, переходим в Applications -> Text to Speech Name - дайте имя для TTS механизма Text - укажите произносимый системой набор слов Choose an Engine - выберите движок для воспроизведения. По умолчанию, единственным доступным является filte Destination - куда будет отправлен звонок, после проговаривания фразы указанной в поле Text На этом этапе система произнесет набор слов по-английски. Писать методом транслитерации – плохая идея. Движок конечно произнесет указанные слова, но это вряд ли можно будет отправить в «продакшн». Итак, как же бесплатно настроить русскоговорящий TTS в FreePBX? Легко, с помощью системы синтеза речи festival Русский язык FreePBX Festival Установку будем производить на примере последней сборки FreePBX Distro на базе CentOS 6. Переходим к установке. Скачиваем исходные файлы cd /usr/src wget http://www.cstr.ed.ac.uk/downloads/festival/2.1/speech_tools-2.1-release.tar.gz wget http://www.cstr.ed.ac.uk/downloads/festival/2.1/festival-2.1-release.tar.gz Распаковываем архивы и инсталлируем необходимые файлы tar zxvf festival-2.1-release.tar.gz tar zxvf speech_tools-2.1-release.tar.gz cd speech_tools ./configure make make install cd .. cd festival ./configure make make install Система может потребовать установить пакет ncurses-devel. Сделайте это с помощью команды yum install ncurses-devel Создаем переменную PATH, которая описывает путь до исполняемых файлов в директории festival/bin/ export PATH=$PATH:/usr/src/festival/bin/ Создадим директорию для хранения русскоязычных файлов. Для этого, последовательно в директории festival/lib/ создадим папки /voices и /russian: mkdir /usr/src/festival/lib/voices/ mkdir /usr/src/festival/lib/voices/russian/ Скачиваем русскоязычный бандл: wget http://sourceforge.net/projects/festlang.berlios/files/msu_ru_nsh_clunits-0.5.tar.bz2 Далее, распаковываем скачанный архив в созданную директорию: tar xjf msu_ru_nsh_clunits-0.5.tar.bz2 -C ./festival/lib/voices/russian Открываем через редактор vim файл /usr/src/festival/lib/languages.scm vim /usr/src/festival/lib/languages.scm В самом начале файла вставляем следующие строки: (define (language_russian) "(language_russian) Set up language parameters for Russian." (set! male1 voice_msu_ru_nsh_clunits) (male1) (Parameter.set 'Language 'russian) ) В файле находим строки указанные ниже: (language_british_english)) ((equal? language 'british_english) После указанных выше строк, добавляем следующее: (language_russian)) ((equal? language 'russian) Далее открываем файл /usr/src/festival/lib/siteinit.scm и в самый конец добавляем строку ниже: (set! voice_default 'voice_msu_ru_nsh_clunits) Создаем кэш – директорию. Для этого, скопируйте команду ниже: mkdir /var/lib/asterisk/festivalcache/ && chown asterisk:asterisk /var/lib/asterisk/festivalcache/ Открываем файл /etc/asterisk/festival.conf и добавляем следующие строки: [main] host=localhost port=1314 usecache=yes cachedir=/var/lib/asterisk/festivalcache/ \созданный выше файл festivalcommand=(tts_textasterisk "%s" 'file)(quit) Запускаем сервер festival festival --server Если все успешно, то вы увидите строки ниже: [pbx@localhost ~]#festival --server server Fri Aug 12 13:00:32 2016 : Festival server started on port 1314 Приступаем к тестам. Открываем файл /etc/asterisk/extensions_custom.conf и создаем тестовый диал – план как указано ниже: [festival] exten => s,1,Answer exten => s,n,Festival('Привет. Все. работает.') exten => s,n,Hangup Сохраняем изменения. Для того, чтобы настроить воспроизведение из графического интерфейса FreePBX мы воспользуемся модулем Custom Destinations. Для его настройки перейдите во вкладку Admin -> Custom Destinations . Нажимаем на кнопку Add Destination Разберем каждую из опций: Target - укажите здесь festival,s,1, согласно созданному ранее диал-плану. Синтаксис заполнения следующий - [имя_контекста],[экстеншен],[приоритет] Description - описание создаваемого правила Notes - заметки. Если вы создаете много подобных правил, советуем создавать подробные заметки, чтобы избежать дальнейшей путаницы. Return - если ваш контекст заканчивается командой Return (команда возвращает вызов в родительский контекст), то в поле Destination укажите назначение для вызова после отработки TTS. По окончанию настроек нажмите Submit и затем Apply Config. Теперь необходимо настроить маршрутизацию на кастомный контекст, который мы только что создали в FreePBX. Например, можно настроить маршрутизацию из IVR меню по нажатию цифры 5 на телефоне, как указано ниже: Звоним на IVR и нажимаем 5 и слышим синтезированный голос. Параллельно смотрим на запущенный через CLI сервер Festival: client(1) Fri Aug 12 13:00:54 2016 : accepted from localhost client(1) Fri Aug 12 13:01:04 2016 : disconnected client(2) Fri Aug 12 13:01:20 2016 : accepted from localhost client(2) Fri Aug 12 13:01:20 2016 : disconnected Google TTS в FreePBX Еще пару лет назад можно было бы легко воспользоваться Google TTS для синтеза речи. Для этого надо было добавить движок во вкладке Settings -> Text To Speech Engines и отредактировать файл /var/lib/asterisk/agi-bin/propolys-tts.agi. Но, к сожалению, Google начал использовать капчу, чем перекрыл автоматизированный и бесплатный доступ к своему сервису. Дополнительно про настройку TTS от Festival вы можете прочитать здесь.
img
  В современном технологическом мире контейнерные технологии используются везде. Самой популярной платформой для управления контейнерами является Docker. С ее помощью использовать контейнеры, разрабатывать и запускать приложения становится проще.  К сожалению, она может занимать довольно много места на диске, и в конечном счете диск может просто переполниться. Совсем неважно, где вы используете Docker – на своем устройстве или на сервере, это руководство научит вас анализировать дисковое пространство, которые вы используете, и очищать Docker от ненужных ресурсов.  Все, что вам понадобиться, - это запущенный демон Docker и терминал. Как проанализировать, сколько места занимает Docker Вы можете просмотреть, сколько места занимает Docker, запустив следующую команду: $ docker system df TYPE  TOTAL ACTIVE  SIZE  RECLAIMABLE Images  61  16  21.1GB  15.25GB (72%) Containers  69  0 12.26MB 12.26MB (100%) Local Volumes 3 2 539.1MB 50.04MB (9%) Build Cache 76  0 1.242GB 1.242GB А добавив флаг  -v , вы можете получить более подробную информацию: $ docker system df -v REPOSITORY  TAG IMAGE ID CREATED SIZE  SHARED teamatldocker/jira  e50b8390945c 4 weeks ago 842.3MB 0B       vw  ed9e125a8925 2 months ago  1.659GB 134.8MB Containers space usage: CONTAINER ID IMAGE  COMMAND SIZE 94e03a4a17d0 teamatldocker/jira "/sbin/tini -- /usr/…"  1.4MB Local Volumes space usage: VOLUME NAME LINKS SIZE play-with-jira_postgresqldata 1 84.19MB   play-with-jira_jiradata 1 404.8MB Build cache usage: 1.242GB CACHE ID CACHE TYPE SIZE  CREATED  LAST USED oxil5sdicb91 regular  135MB 2 months ago 2 months ago  kxz13fmdbodg regular  13B 2 months ago 2 months ago nysus21ej7pf regular  0B  2 months ago 2 months ago Как вы можете видеть, вы получили информацию о том: Сколько места занимают образы Сколько места занимают контейнеры Сколько места занимают локальные тома Сколько места занимает кэш сборки Как очистить Docker Вы можете очистить Docker полностью или только какие-то определенные его ресурсы, например, образы, тома контейнеров или кэш сборки. Для того, чтобы очистить максимально большую часть данных (кроме тех компонентов, которые сейчас используются), вам нужно выполнить следующую команду: $ docker system prune -a Флаг  -a обозначает неиспользуемые или висячие контейнеры. Если вы не укажите флаг  -a , то команда удалит только висячие образы, то есть нетегированные образы, которые никак не связаны с другими образами. Если вы хотите удалить большую часть ресурсов Docker, но при этом оставить тегированные образы, то вам нужна вот эта команда: $ docker system prune Эти команды помогут вам быстро освободить место на диске. Но помимо этого вы можете удалять отдельные компоненты. Вот несколько полезных команд: Удаление неиспользуемых и висячих образов $ docker image prune Удаление только висячих образов $ docker image prune -a Удаление остановленных контейнеров $ docker container prune Удаление неиспользуемых томов $ docker volume prune Как управлять пространством, которое использует Docker, на постоянной основе Какие-то команды вы можете запускать на ежедневной основе или при запуске платформы. А для того, чтобы не забывать об этом, вы можете добавить флаг  -f к команде, которую хотите запускать автоматически. Только помните, что, так как вы регулярно удаляете ресурсы Docker, вам придется чаще загружать образы. Если у вас нет проблем с нехваткой дискового пространства, можете быть спокойны. Просто делайте «уборку» всякий раз, как заметите, что Docker начинает использовать слишком много памяти. Заключение На сегодняшний день существует огромное количество способов освобождения дискового пространства Docker с помощью docker-команд. Вы даже можете выполнять эти команды в автоматическом режиме, если хотите периодически очищать ресурсы Docker.
img
  Если вы хотите добавить какое-то значение в ячейку, и это зависит от некоторого условия, завязанного на других ячейках, то вам нужен SQL-оператор case.  Если вы знакомы с другими языками, то можно сказать, что оператор case – это тот же оператор if или switch. С его помощью вы можете указать значения для разных условий, так что вы можете получить различные значения в ячейке в зависимости от того, какое условие выполнится.  Этот оператор может быть очень полезен в анализе данных, так что после того, как мы ознакомимся с самим оператором case, мы рассмотрим пару примеров, как их можно использовать в анализе данных. Синтаксис SQL-оператора case Его синтаксис имеет довольно много нюансов, но при этом он интуитивно понятный: ключевое слово  CASE свидетельствует о начале оператора case, а ключевое слово  END - о его конце. К тому же для отдельного условия вы можете записать ключевое слово  WHEN , а после него условие, которое должно быть выполнено. Затем следует ключевое слово  THEN и значение для этого условия, например,  WHEN <условие> THEN <содержимое>. Дальше могут следовать другие операторы  WHEN / THEN .  В конце, после ключевого слова  ELSE   , вы можете добавить значение по умолчанию, которое будет использоваться только в том случае, если ни одно из условий не выполнится. Ниже приведен пример.  CASE   WHEN условие1 THEN содержимое   WHEN условие2 THEN другое содержимое   ...   ELSE содержимое по умолчанию END Давайте реализуем это на практике, чтобы лучше понять. Примеры с SQL-оператором case Давайте применим оператор case на практике. У нас есть таблица со списком студентов и их экзаменационными баллами. Нам нужно поставить каждому студенту оценку. Мы можем сделать это автоматически, а для этого нам нужен оператор case. id name score 1 Simisola 60 2 Ivan 80 3 Metodija 52 4 Callum 98 5 Leia 84 6 Aparecida 82 7 Ursula 69 8 Ramazan 78 9 Corona 87 10 Alise 57 11 Galadriel 89 12 Merel 99 13 Cherice 55 14 Nithya 81 15 El?ad 71 16 Liisi 90 17 Johanna 90 18 Anfisa 90 19 Ry?suke 97 20 Sakchai 61 21 Elbert 63 22 Katelyn 51 Воспользуемся оператором  CASE   для того, чтобы поставить каждому студенту оценку, которую мы добавим в новый столбец под названием  grade . Для начала запишем оператор  CASE   со схемой распределения оценок. Если значение  score равно 94 и выше, то в строке записывается значение  A . Если же значение  score равно 90 и выше, то записывается значение  A- , и т.д.  CASE    WHEN score >= 94 THEN "A"    WHEN score >= 90 THEN "A-"    WHEN score >= 87 THEN "B+"    WHEN score >= 83 THEN "B"    WHEN score >= 80 THEN "B-"    WHEN score >= 77 THEN "C+"    WHEN score >= 73 THEN "C"    WHEN score >= 70 THEN "C-"    WHEN score >= 67 THEN "D+"    WHEN score >= 60 THEN "D"    ELSE "F"  END После того, как мы написали оператор  CASE , мы можем добавить его в запрос. После чего мы воспользуемся ключевым словом  AS и дадим столбцу название  grade : SELECT *,  CASE    WHEN score >= 94 THEN "A"    WHEN score >= 90 THEN "A-"    WHEN score >= 87 THEN "B+"    WHEN score >= 83 THEN "B"    WHEN score >= 80 THEN "B-"    WHEN score >= 77 THEN "C+"    WHEN score >= 73 THEN "C"    WHEN score >= 70 THEN "C-"    WHEN score >= 67 THEN "D+"    WHEN score >= 60 THEN "D"    ELSE "F"  END AS grade FROM students_grades; Ниже представлена таблица, которую мы получим с помощью этого запроса. Теперь у каждого студента есть оценка, которая была выставлена в соответствии с его баллами. id name score grade 1 Simisola 60 D 2 Ivan 80 B- 3 Metodija 52 F 4 Callum 98 A 5 Leia 84 B 6 Aparecida 82 B- 7 Ursula 69 D+ 8 Ramazan 78 C+ 9 Corona 87 B+ 10 Alise 57 F 11 Galadriel 89 B+ 12 Merel 99 A 13 Cherice 55 F 14 Nithya 81 B- 15 El?ad 71 C- 16 Liisi 90 A- 17 Johanna 90 A- 18 Anfisa 90 A- 19 Ry?suke 97 A 20 Sakchai 61 D 21 Elbert 63 D 22 Katelyn 51 F Более сложные примеры с SQL-оператором case Кроме того, мы можем производить различные действия с этой таблицей (зависит от того, что нам требуется) с помощью других операторов, которые используются совместно с оператором case. Оператор case: пример 1 Например, мы можем воспользоваться оператором  ORDER BY для того, чтобы отсортировать строки так, чтобы студенты с наивысшими оценками были на верхних строчках.  SELECT name,  CASE    WHEN score >= 94 THEN "A"    WHEN score >= 90 THEN "A-"    WHEN score >= 87 THEN "B+"    WHEN score >= 83 THEN "B"    WHEN score >= 80 THEN "B-"    WHEN score >= 77 THEN "C+"    WHEN score >= 73 THEN "C"    WHEN score >= 70 THEN "C-"    WHEN score >= 67 THEN "D+"    WHEN score >= 60 THEN "D"    ELSE "F"  END AS grade FROM students_grades ORDER BY score DESC; Мы упорядочиваем строки, основываясь на столбце  score , значения которого являются числами, а не на столбце  grade , так как алфавитный порядок не совпадает с порядком числовых оценок. Для того, чтобы отобразить строки в порядке убывания, то есть так, чтобы наибольшие значения были наверху, мы используем ключевое слово  DESC . Таблица будет выглядеть следующим образом: name grade Merel A Callum A Ry?suke A Liisi A- Johanna A- Anfisa A- Galadriel B+ Corona B+ Leia B Aparecida B- Nithya B- Ivan B- Ramazan C+ El?ad C- Ursula D+ Elbert D Sakchai D Simisola D Alise F Cherice F Metodija F Katelyn F Оператор case: пример 2 Давайте немного проанализируем эти данные. Подсчитаем, сколько студентов получили каждую оценку. Для этого воспользуемся операторами  GROUP BY   и  COUNT . SELECT  CASE    WHEN score >= 94      THEN "A"    WHEN score >= 90 THEN "A-"    WHEN score >= 87 THEN "B+"    WHEN score >= 83 THEN "B"    WHEN score >= 80 THEN "B-"    WHEN score >= 77 THEN "C+"    WHEN score >= 73 THEN "C"    WHEN score >= 70 THEN "C-"    WHEN score >= 67 THEN "D+"    WHEN score >= 60 THEN "D"    ELSE "F"  END AS grade,  COUNT(*) AS number_of_students FROM students_grades GROUP BY grade ORDER BY score DESC; Мы используем оператор  ORDER BY для того, чтобы упорядочить оценки в порядке убывания, и для этого мы используем столбец  score , так как в нем хранятся числовые значения (а вот упорядочение по столбцу  grade будет использовать алфавитный порядок, который не будет совпадать с порядком оценок, выстроенном по числовым значениям). grade number_of_students A 3 A- 3 B+ 2 B 1 B- 3 C+ 1 C- 1 D+ 1 D 3 F 4 Оператор case: пример 3 Давайте проанализируем данные немного по-другому. Мы воспользуемся операторами  GROUP BY   и  COUNT , а также оператором case (но немного другим) для того, чтобы подсчитать, сколько студентов сдали экзамен. После чего мы можем применить оператор  ORDER BY для того, чтобы расположить значения столбца с количеством студентов, успешно сдавших экзамен, в том порядке, который нам нужен. SELECT  CASE    WHEN score >= 60      THEN "passed"    ELSE "failed"  END AS result,  COUNT(*) AS number_of_students FROM students_grades GROUP BY result ORDER BY result DESC; Вот так выглядит таблица, которую мы получили в результате. Не такая уж и плохая группа – 18 из 22 студентов сдали экзамен, а вот оставшимся 4 студентам может потребоваться помощь. result number_of_students passed 18 failed 4 Заключение Оператор case – это мощный инструмент, который вы можете использовать тогда, когда вам нужно получить значения с учетом некоторых условий. Из этой статьи вы узнали, как его можно применять, и рассмотрели несколько примеров из области анализа данных. 
ЗИМНИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59