По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Технология 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 вы можете прочитать здесь.
Понимать состояние ваших серверов с точки зрения их загрузки и производительности - крайне важная задача. В этой статье мы опишем несколько самых популярных методов для проверки и мониторинга загрузки ЦПУ на Linux хосте.
Методы проверки
Проверяем загрузку процессора с помощью команды top
Отличным способом проверки загрузки является команда top. Вывод этой команды выглядит достаточно сложным, зато если вы в нем разберетесь, то точно сможете понять какие процессы занимают большую часть ваших вычислительных мощностей.
Команда состоит всего из трех букв: top
У вас откроется окно в терминале, которое будет отображать запущенные сервисы в реальном времени, долю системных ресурсов, которую эти сервисы потребляют, общую сводку по загрузке CPU и т.д
Будем идти по порядку: первая строчка отображает системное время, аптайм, количество активных пользовательских сессий и среднюю загруженность системы. Средняя загруженность для нас особенно важна, т.к дает понимание о среднем проценте утилизации ресурсов за некоторые промежутки времени.
Три числа показывают среднюю загрузку: за 1, 5 и 15 минут соответственно. Считайте, что эти числа - это процентная загрузка, т.е 0.2 означает 20%, а 1.00 - стопроцентную загрузку. Это звучит и выглядит достаточно логично, но иногда там могут проскакивать странные значения - вроде 2.50. Это происходит из-за того, что этот показатель не прямое значение загрузки процессора, а нечто вроде общего количества "работы", которое ваша система пытается выполнить. К примеру, значение 2.50 означает, что текущая загрузка равна 250% и ваша система на 150% перегружена.
Вторая строчка достаточна понятна и просто показывает количество задач, запущенных в системе и их текущий статус.
Третья строчка позволит вам отследить загрузку ЦПУ с подробной статистикой. Но здесь нужно сделать некоторые комментарии:
us: процент времени, когда ЦПУ был загружен и которое было затрачено на user space (созданные/запущенные пользователем процессы)
sy: процент времени, когда ЦПУ был загружен и которое было затрачено на на kernel (системные процессы)
ni: процент времени, когда ЦПУ был загружен и которое было затрачено на приоритезированные пользовательские процессы (системные процессы)
id: процент времени, когда ЦПУ не был загружен
wa: процент времени, когда ЦПУ ожидал отклика от устройств ввода - вывода (к примеру, ожидание завершения записи информации на диск)
hi: процент времени, когда ЦПУ получал аппаратные прерывания (например, от сетевого адаптера)
si: процент времени, когда ЦПУ получал программные прерывания (например, от какого-то приложения адаптера)
st: сколько процентов было "украдено" виртуальной машиной - в случае, если гипервизору понадобилось увеличить собственные ресурсы
Следующие две строчки показывают сколько занято/свободно оперативно памяти и файла подкачки, и не так релевантны относительно задачи проверки нагрузки на процессор. Под информацией о памяти вы увидите список процессов и процент ЦПУ, который они тратят.
Также вы можете нажимать на кнопку t, чтобы прокручивать между различными вариантами вывода информации и использовать кнопку q для выхода из top
Немного более модный способ: htop
Существует более удобная утилита под названием htop, которая предоставляет достаточно удобный интерфейс с красивым форматированием. Установка утилиты экстремально проста:Для Ubuntu и Debian:
sudo apt-get install htop
Для CentOS и Red Hat:
yum install htop
Для Fedora:
dnf install htop
После установки просто введите команду ниже:
htop
Как видно на скриншоте, htop гораздо лучше подходит для простой проверки степени загрузки процессора. Выход также осуществляется кнопкой q
Прочие способы проверки степени загрузки ЦПУ
Есть еще несколько полезных утилит, и одна из них (а точнее целый набор) называется sysstat.Установка для Ubuntu и Debian:
sudo apt-get install sysstat
Установка для CentOS и Red Hat:
yum install sysstat
Как только вы установите systat, вы сможете выполнить команду mpstat - опять же, практически тот же вывод, что и у top, но в гораздо лаконичнее.
Следующая утилита в этом пакете это sar. Она наиболее полезна, если вы ее вводите вместе с каким-нибудь числом, например 6. Это определяет временной интервал, через который команда sar будет выводить информацию о загрузке ЦПУ.
К примеру, проверяем загрузку ЦПУ каждые 6 секунд:
sar 6
Если же вы хотите остановить вывод после нескольких итераций, например 10, добавьте еще одно число:
sar 6 10
Так вы также увидите средние значения за 10 выводов.
Как настроить оповещения о слишком высокой нагрузке на процессор
Одним из самых правильных способов является написание простого bash скрипта, который будет отправлять вам алерты о слишком высокой степени утилизации системных ресурсов.
#!/bin/bash
CPU=$(sar 1 5 | grep "Average" | sed 's/^.* //')
CPU=$( printf "%.0f" $CPU )
if [ "$CPU" -lt 20 ]
then
echo "CPU usage is high!" | sendmail admin@example.com
fi
Скрипт будет использовать обработчик sed и среднюю загрузку от команды sar. Как только нагрузка на сервер будет превышать 85%, администратор будет получать письмо на электронную почту. Соответственно, значения в скрипте можно изменить под ваши требования - к примеру поменять тайминги, выводить алерт в консоль, отправлять оповещения в лог и т.д.
Естественно, для выполнения этого скрипта нужно будет запустить его по крону:
crontab -e
Для ежеминутного запуска введите:
* * * * * /path/to/cpu-alert.sh
Заключение
Соответственно, лучшим способом будет комбинировать эти способы - например использовать htop при отладке и экспериментах, а для постоянного контроля держать запущенным скрипт.
Создание разделов диска позволяет разделить жесткий диск на несколько разделов, которые действуют независимо.
В Linux пользователи должны структурировать устройства хранения (USB и жесткие диски) перед их использованием. Разбиение на разделы также полезно, когда вы устанавливаете несколько операционных систем на одном компьютере.
В этом пошаговом руководстве вы узнаете, как создать раздел с помощью команды Linux parted или fdisk.
Вариант 1: разбить диск на разделы с помощью команды parted
Выполните следующие действия, чтобы разбить диск в Linux с помощью команды parted.
Шаг 1. Список разделов
Перед созданием раздела составьте список доступных запоминающих устройств и разделов. Это действие помогает определить устройство хранения, которое вы хотите разбить на разделы.
Выполните следующую команду с sudo, чтобы вывести список устройств хранения и разделов:
sudo parted -l
Терминал распечатывает доступные устройства хранения с информацией о:
Model - Модель запоминающего устройства.
Disk - Имя и размер диска.
Sector size - логический и физический размер памяти. Не путать с доступным дисковым пространством.
Partition Table - тип таблицы разделов (msdos, gpt, aix, amiga, bsd, dvh, mac, pc98, sun и loop).
Disk Flags - разделы с информацией о размере, типе, файловой системе и флагах.
Типы разделов могут быть:
Primary (Основной) - содержит файлы операционной системы. Можно создать только четыре основных раздела.
Extended (Расширенный) - особый тип раздела, в котором можно создать более четырех основных разделов.
Logical (Логический) - Раздел, созданный внутри расширенного раздела.
В нашем примере есть два устройства хранения - /dev/sda и /dev/sdb
Примечание. Первый диск хранения (dev/sda или dev/vda) содержит операционную систему. Создание раздела на этом диске может сделать вашу систему не загружаемой. Создавайте разделы только на дополнительных дисках (dev/sdb, dev/sdc, dev/vdb или dev/vdc).
Шаг 2: Откройте диск для хранения
Откройте диск хранения, который вы собираетесь разделить, выполнив следующую команду:
sudo parted /dev/sdb
Всегда указывайте запоминающее устройство. Если вы не укажете имя диска, он будет выбран случайным образом. Чтобы сменить диск на dev/sdb, выполните:
select /dev/sdb
Шаг 3: Создайте таблицу разделов
Прежде чем разбивать диск, создайте таблицу разделов. Таблица разделов расположена в начале жесткого диска и хранит данные о размере и расположении каждого раздела.
Типы таблиц разделов: aix, amiga, bsd, dvh, gpt, mac, ms-dos, pc98, sun и loop.
Чтобы создать таблицу разделов, введите следующее:
mklabel [partition_table_type]
Например, чтобы создать таблицу разделов gpt, выполните следующую команду:
mklabel gpt
Введите Yes, чтобы выполнить:
Примечание. Два наиболее часто используемых типа таблиц разделов - это gpt и msdos. msdos поддерживает до шестнадцати разделов и форматирует до 16 ТБ, а gpt форматирует до 9,4 ЗБ и поддерживает до 128 разделов.
Шаг 4: проверьте таблицу
Запустите команду print, чтобы просмотреть таблицу разделов. На выходе отображается информация об устройстве хранения:
Примечание. Запустите команду help mkpart, чтобы получить дополнительную справку о том, как создать новый раздел.
Шаг 5: Создайте раздел
Давайте создадим новый раздел размером 1854 Мбайт, используя файловую систему ext4. Назначенное начало диска должно быть 1 МБ, а конец диска - 1855 МБ.
Чтобы создать новый раздел, введите следующее:
mkpart primary ext4 1MB 1855MB
После этого запустите команду print, чтобы просмотреть информацию о вновь созданном разделе. Информация отображается в разделе Disk Flags:
В таблице разделов gpt, тип раздела - это обязательное имя раздела. В нашем примере primary - это имя раздела, а не тип раздела.
Чтобы сохранить свои действия и выйти, введите команду quit. Изменения сохраняются автоматически с помощью этой команды.
Примечание. Сообщение «You may need to update /etc/fstab file» сигнализирует о том, что раздел может быть смонтирован автоматически во время загрузки.
Вариант 2: разбить диск на разделы с помощью команды fdisk
Выполните следующие действия, чтобы разбить диск в Linux с помощью команды fdisk.
Шаг 1. Список существующих разделов
Выполните следующую команду, чтобы вывести список всех существующих разделов:
sudo fdisk -l
Вывод содержит информацию о дисках и разделах хранилища:
Шаг 2: Выберите диск для хранения
Выберите диск для хранения, на котором вы хотите создать разделы, выполнив следующую команду:
sudo fdisk /dev/sdb
Диск /dev/sdbstorage открыт:
Шаг 3: Создайте новый раздел
Запустите команду n, чтобы создать новый раздел.
Выберите номер раздела, набрав номер по умолчанию (2).
После этого вас попросят указать начальный и конечный сектор вашего жесткого диска. Лучше всего ввести в этом разделе номер по умолчанию (3622912).
Последний запрос связан с размером раздела. Вы можете выбрать несколько секторов или установить размер в мегабайтах или гигабайтах. Введите + 2 GB, чтобы установить размер раздела 2 ГБ.
Появится сообщение, подтверждающее создание раздела.
Шаг 4: запись на диск
Система создала раздел, но изменения не записываются на диск.
1. Чтобы записать изменения на диск, выполните команду w:
2. Убедитесь, что раздел создан, выполнив следующую команду:
sudo fdisk -l
Как видите, раздел /dev/sdb2 создан.
Отформатируйте раздел
После создания раздела с помощью команды parted или fdisk отформатируйте его перед использованием.
Отформатируйте раздел, выполнив следующую команду:
sudo mkfs -t ext4 /dev/sdb1
Смонтировать раздел
Чтобы начать взаимодействие с диском, создайте точку монтирования (mount point) и смонтируйте к ней раздел.
1. Создайте точку монтирования, выполнив следующую команду:
sudo mkdir -p /mt/sdb1
2. После этого смонтируйте раздел, введя:
sudo mount -t auto /dev/sbd1 /mt/sdb1
Терминал не распечатывает вывод, если команды выполнены успешно.
3. Убедитесь, что раздел смонтирован, с помощью команды df hT: