Топ-15 синтезаторов речи для озвучки текста на пк и смартфонах
Содержание:
- Пошаговая установка сервера телефонии FreePBX Distro и настройка для работы с 1C и не только. Промо
- Знакомство с API Yandex SpeechKit
- Funny voice
- Настраиваем доступ
- Популярные голосовые движки
- Installation
- Запрос результата
- Description
- Примеры использования
- Пример на Python
- Использование компонента
- Git + 1С. Часть 1. Как подключиться к команде разработки и начать использовать Git
Пошаговая установка сервера телефонии FreePBX Distro и настройка для работы с 1C и не только. Промо
И так приступим…. У меня старый компьютер с конфигурацией :
CPU-Intel Pentium 4, 3000 MHz, DDR SDRAM-2048 Mb, Video GF 9400 512 Mb, HDD 80 Gb, CD-ROM, сетевая встроенная карта 100 м/бит. Можно еще проще конфигурацию…… Хватит для фирмы 1-50 SIP абонентов, GSM trunk, Skype и т.д. Так же у меня две аналоговых линии местной АТС FXO (Grandstream HT-503 и Unicorn 3112) и 4-е оператора GSM (MTS ,Megafon, BeeLine, Tele 2) . В качестве GSM-шлюза использую модемы Huawei E171 и USB HUB D-Link DUB-H7. К серверу можно прикрутить видео наблюдение, домофон или другое устройство имеющее IP адрес, но это в следующей статье, если хватит сил и терпения.
1 стартмани
Знакомство с API Yandex SpeechKit
Представьте простую, максимально идеальную ситуацию без подводных камней типа “а если..”. Вы организуете закрытую вечеринку и хотите общаться с гостями, ни на что не отвлекаясь. Тем более на тех, кого вы не ждали.
Давайте попробуем создать виртуального дворецкого, который будет встречать гостей и открывать дверь только приглашенным.
Синтез текста через cURL
С помощью встроенной в bash команды export запишем данные в переменные:
Теперь их можно передать в POST-запрос с помощью cURL:
Рассмотрим параметры запроса:
speech.raw – файл формата LPSM (несжатый звук). Это и есть озвученный текст в бинарном виде, который будет сохранен в текущую папку.
lang=ru-RU – язык текста.
emotion=good – эмоциональный окрас голоса. Пусть будет дружелюбным.
voice=ermil – текст будет озвучен мужским голосом Ermil. По умолчанию говорит Оксана.
https://tts.api.cloud.yandex.net/speech/v1/tts:synthesize – url, на который отправляется post-запрос на синтез речи дворецкого.
Бинарный файл послушать не получится, тогда установим утилиту SoX и сделаем конвертацию в wav:
speech.wav – приветствие готово и сохранено в текущую папку.
Для проигрывания wav внутри кода Python, можно взять, например, библиотеку simpleaudio. Она простая и не создает других потоков:
Итак, наш первый гость стоит перед входом на долгожданную party. Пытается открыть дверь, и вдруг слышит голос откуда-то сверху:
«Привет, чувак! Назови-ка мне свои имя и фамилию?» (или ваш вариант)
Отлично! Вы научили дворецкого приветствовать гостей, используя командную строку и cURL. А пока гость вспоминает ответ, научимся работать с API на языке Python.
Распознавание текста с помощью requests
Мы могли бы снова воспользоваться cURL для отправки ответа гостя на распознавание. Но мы пойдем дальше и напишем небольшую программу, основанную на подобных запросах.
Создайте готовый аудио-файл с ответом гостя. Сделать это можно через встроенный микрофон на вашем ноутбуке разными инструментами. Для macos подойдет Quick Time Player. Сконвертируйте аудио в формат ogg: name_guest.ogg. Можно онлайн, например, тут
Итак, пишем код на Python:
Для отправки запросов в Python воспользуемся стандартной библиотекой requests:
Импортируем в код:
Зададим параметры, которые мы получили в командной строке:
Аудио необходимо передавать в запрос в бинарном виде:
Давайте обернем весь процесс распознавания в функцию recognize:
Итак, чтобы дворецкий смог проверить гостя по списку, вызовем функцию и распознаем ответ:
Теперь очередь за дворецким. В нашем случае, он вежлив ко всем. И прежде чем открыть или не открыть гостю дверь, он обратится лично. Например, так:
“Мы вам очень рады, <имя_и фамилия_гостя>, но вас нет в списке, сорян”
Для последующего синтеза вы можете снова воспользоваться CURL или так же написать функцию на Python. Принцип работы с API для синтеза и распознавания речи примерно одинаков.
Funny voice
Замыкает наш список программа Funny voice. Это наиболее простая программа, но она отлично подойдет для среднестатистического пользователя.
Изменение голоса происходит путем передвижения ползунка, который регулирует тональность. Это регулирование – основная функция это утилиты.
Необходимо заметить, что программа является полностью бесплатной. Скачать ее можно на официальном сайте производителя.
Funny voice интерфейс
Работает программа достаточно просто: она записывает весь звук на микрофон и выводит уже измененный звук утилитой. Здесь есть возможность записать аудио лишь только в формате (wav).
Конечно, это далеко не профессиональное приложение, но побаловаться и посмеяться с друзьями с помощью него вполне возможно. Ведь этой маленькой утилитой можно исказить свой голос до неузнаваемости.
Выводы
Таким образом, программ на российском рынке, специализирующихся на изменения голоса онлайн, существует слишком маленькое количество.
Они есть, но в основном они все лишены русского языка. Поэтому для работы с ними необходимо знать английский язык хотя бы на самом начальном уровне.
Нужно отметить, что в этом топе представлены простые приложения и программы для профессионалов. Так, в простых приложениях можно лишь только изменять тональность голоса, передвигая ползунки.
В профессиональных же программах существует масса функций, с помощью которых есть возможность добавлять различные эффекты, а также изменить мужской голос на женский.
Многие утилиты представлены только в платной версии, поэтому чтобы ими воспользоваться, необходимо заплатить денежку производителю.
По нашему мнению, лучшей программой из всех является Voxal Voice Changer. В приложение есть русский язык, что редкость.
А также существует бесплатная и платная версия, что позволяет использовать ее профессионалам и любителям.
Настраиваем доступ
Есть два способа работать с сервисом SpeechKit: через IAM-токен, который нужно запрашивать заново каждые 12 часов, или через API-ключ, который постоянный и менять его не нужно. Мы будем работать через ключ, потому что так удобнее.
Чтобы его получить, нам нужен сервисный аккаунт в «Облаке». Создадим его так.
1. Заходим в консоль управления и нажимаем на единственную папку в нашем облаке:
2. Выбираем «Сервисные аккаунты» → «Создать»:
3. Вводим имя (какое понравится), затем нажимаем «Добавить роль» и выбираем «editor»:
4. Заходим в сервисный аккаунт, который только что создали:
5. Нажимаем на кнопку «Создать новый ключ» и выбираем пункт «Создать API-ключ»:
Сервис спросит про описание — можно ничего не заполнять.
6. Сохраняем отдельно секретный ключ — он выдаётся только один раз и восстановить его нельзя. Выделяем, копируем и сохраняем в безопасное место:
Популярные голосовые движки
Звучание голоса в синтезаторе речи зависит от того, какой в нем используется движок. Например, в русских версиях Windows установлен “электронный диктор” Microsoft Irina. Если в синтезаторе речи нет другого движка, то по умолчанию будет говорить именно она. При этом выбор голосов на самом деле очень богатый. Среди популярных русских движков можно выделить:
- Alyona от Acapela Group
- Татьяна и Максим от Ivona
- Ольга и Дмитрий от Loquendo
- Милена, Катерина и Юрий от Nuance
- Николай от Speech Cube Elan
Движки отличаются тембром голоса, эмоциональной окраской, количеством встроенных словарей, которые определяют правильность речи. Например, Николай читает текст практически без эмоций, поэтому с ним сложно воспринимать художественные тексты, а Ольга и Дмитрий от Loquendo, наоборот, используют разные стили речи. Все перечисленные движки работают по стандарту SAPI 5, который применяется на Windows, начиная с версии XP.
Большинство движков представлены в двух вариантах — мужской и женский голос. Детских голосов мало. Даже на сайте Acapela Group, одного из лидеров индустрии, меньше 10 языков, для которых доступны голоса детей.
Как сказано выше, голосовые движки облегчают процесс изучения иностранных языков. Например, Lernout&Hauspie предлагает для этого бесплатные голоса с американским и британским акцентами английского,а также голландским, испанским, итальянским и другим произношением. Большое количество движков разработала компания Cepstral. У них также есть бесплатная версия электронного диктора, однако при ее использовании постоянно появляется окно с предложением перейти на платный тариф.
Несмотря на то, что голосовые движки становятся всё более технологичными, добиться 100% совпадения с живой человеческой речью не удалось пока никому. Вам достаточно услышать несколько предложений, чтобы понять, что говорит робот. При изучении иностранных слов не стоит полагаться только на произношение программ — они нередко ошибаются. Но если ваша задача — простое озвучивание информации на русском, то можно использовать любой движок, в базе которого есть этот язык.
Чтобы добавить голосовой движок в Windows, достаточно его скачать и установить как обычную программу. После этого он появится в списке доступных. Но для использования голосов необходима сторонняя программа или веб-сервис, так как сами движки не имеют графического интерфейса.
Installation
There are several ways to add SpeechKit to a project.
Installing with CocoaPods
$ gem install cocoapods
Podfile
To integrate SpeechKit into your project using CocoaPods, create a file in the project directory:
source 'https://github.com/CocoaPods/Specs.git' platform :ios, '8.0' target 'TargetName' do pod 'YandexSpeechKit', '~> 3.12.2' end
Then run the command:
$ pod install
Adding SpeechKit directly
You can add SpeechKit directly to a project as a static library, without using a dependency manager.
In the Xcode project settings, choose -> , then click -> and choose SpeechKit. Also add all the frameworks and libraries required by SpeechKit in the same section. For a complete list, see .
In -> , add the bundle with the resources, which is located in the directory.
In -> -> , set the path to the directory that contains SpeechKit.
Запрос результата
Ответ на запрос приходит двух видов: готов («done»: true) и не готов («done»: false), возникает необходимость проверки условия, если результат не готов, то нужно отправить ещё запрос, если готов, то можно извлекать текст.
Можно работать с тем же файлом, куда сохранялся результат вывода запроса на распознание, можно перенаправить вывод в другой файл. Теперь при помощи grep можно проверить статус операции и если результата нет гонять её по кругу, пока не будет получен успех.
Если распознание завершено, придёт ответ, который нужно привести в нормальный вид. При помощи grep и sed оставляем строчки с текстом, сохраняем в файл result.txt.
В итоге получаем вот такой нехитрый набор из 5 команд, который можно собрать в скрипт:
Как видно, просто вручную это всё делать не очень удобно, хотя команд и не много, но хочется всё автоматизировать и сделать в виде скрипта. Основной затык в месте проверки статуса операции без этого цикла совсем печаль.
Выложил на github более-менее законченную версию с минимальным учётом всех возможных сценариев работы, если кому-то надо.
Description
Publish audio versions of every story in seconds with instant text to speech conversion. Sign up and download to take advantage of the full audio service;
- Highest quality text to speech.
- 200+ realistic voices in 28 languages.
- Media and playlist players to fit every page.
- Block compatible with optional audio shortcodes.
- Distribution to Apple Podcast, Spotify and Google.
- Lightning-fast adaptive streaming.
- Pre-roll sponsorship insertions.
- Free audio hosting and MP3 downloads.
- Real-time industry-leading audio analytics.
- 24/7 support.
Built for digital newsrooms but open to everyone, hundreds of publishers are using SpeechKit to improve reader engagement by serving text to speech on the page.
Any comments, feedback or technical issues please contact the team at support@speechkit.io.
How to Set Up
- Install and activate the plugin.
- “Start Trial” or “Sign In” at https://speechkit.io.
- Create a new WordPress project.
- Save the Project ID and API Key into Settings > SpeechKit in WordPress.
You are now publishing audio!
Customer Testimonial
“We’ve been using SpeechKit to convert our articles into audio for over a year. Overall, we are very impressed with the service. The quality of the audio is consistently the best we’ve found available, the plugin and dashboard provides all the functionality we need, processing and delivery of the audio is fast and the players fit nicely on our page. We’ve had great customer feedback and the team have been quick to make adjustments based on our suggestions” – Kenneth Creamer, Creamer Media.
Highest Quality Audio
By serving millions of audio articles SpeechKit has developed the highest quality text to speech available to digital publishers. Our Speech Synthesis Markup Language (SSML) processing engine cleans text of unwanted elements, identifies and handles problematic words and adds human-like intonation, punctuation, tone and much more.
Podcast and Smart Speaker Distribution
Expand the reach of your stories in seconds by adding additional distribution to podcast apps and smart speakers (premium). Manage feeds to podcast platforms (Apple Podcasts, Spotify, Google Play), smart speakers (Amazon Alexa, Google Home) or set up an audio RSS feed to push to your own integrations. Each SpeechKit project can be assigned any number of distribution channels and can be managed in the dashboard tool.
AdStudio
Audio articles provide a brand new way to reach your audience. Monetize this additional content with SpeechKit’s AdStudio. Premium users can create campaigns from the dashboard, upload their own audio track or create a text to speech messages and deliver this as pre-roll to their audio articles. Campaign success is tracked against impressions, CPMs (cost-per-thousand) and CPCs (cost-per-click) and can be paused or managed at any time. Larger audiences may also qualify for programmatic sponsorship through one of SpeechKit’s advertising partners.
Real-Time Analytics
Track, analyse and optimize your audio strategy with granular audio analytics. This premium feature provides paid customers with metrics including listens, audio completion rates, audio click through, audio retention and device type. Performance may be broken down per article for trend analysis, distribution optimization and commercial decision making. Analytics can be accessed in the SpeechKit dashboard and are available with all paid plans.
Premium Product
Access to SpeechKit is free for 5 stories per month. Upgrade to a paid plan in the dashboard for more audio versions and access to premium features, including Real-Time Analytics, Programmatic Ad Placement, Smart Speaker Integration and our Audio API.
You can access SpeechKit for free, with paid plans starting from $19 per month.
The Starter plan includes 30 audio articles per month and access to basic listening analytics. The Newsdesk plan, at $99 per month, which includes 175 articles per month, pro analytics, and the option to insert your own audio ads.
Примеры использования
Подключение
require_once 'vendor/autoload.php';
или
require_once 'yandex-speechkit-php-sdk/autoload.php';
Импорт
use Panda\Yandex\SpeechKitSDK\Cloud; use Panda\Yandex\SpeechKitSDK\Speech; use Panda\Yandex\SpeechKitSDK\Text; use Panda\Yandex\SpeechKitSDK\Lang; use Panda\Yandex\SpeechKitSDK\Ru; use Panda\Yandex\SpeechKitSDK\En; use Panda\Yandex\SpeechKitSDK\Tr; use Panda\Yandex\SpeechKitSDK\Emotion; use Panda\Yandex\SpeechKitSDK\Speed; use Panda\Yandex\SpeechKitSDK\Format; use Panda\Yandex\SpeechKitSDK\Rate; use Panda\Yandex\SpeechKitSDK\Topic; use Panda\Yandex\SpeechKitSDK\Filter; use Panda\Yandex\SpeechKitSDK\Exception\ClientException;
Создание сервиса и аутентификация
try { // Обязательные параметры: "OAUTH-токен", "ID каталога" $cloud = new Cloud('AgAAAAASeN6XAATuwduwAAZFyUEYsEW1gGjh56d', 'b1g89h70fg5jgg8e1j4d'); } catch (ClientException $e) { echo $e->getMessage(); }
Синтез речи
Создание задачи
try { // Обязательный параметр: "Текст" $speech = new Speech('Привет, разработчик!'); } catch (ClientException $e) { echo $e->getMessage(); }
Добавление параметров речи (необязательно)
// Уточнение параметра текста признаком "SSML-формата" (необязательно) $speech->setSSML() /* * Добавление обязательного параметра: "Голос" * Возможно использование других констант классов "Ru", "En", "Tr" в качестве параметра */ ->setVoice(Ru::OKSANA); try { /* * Добавление обязательного параметра, произвольно: "Голос" * Возможно использование статического метода "random" в классах: "Ru", "En", "Tr" */ $speech->setVoice(Ru::random()); } catch (ClientException | ArgumentCountError $e) { echo $e->getMessage(); /* * Добавление обязательного параметра, произвольно: "Голос" * Возможно использование статического метода "random" в классах: "Ru", "En", "Tr" */ $speech->setVoice(Ru::OKSANA); } /* * Добавление обязательного параметра: "Язык" * Возможно использование других констант класса "Lang" в качестве параметра */ $speech->setLang(Lang::RU) /* * Добавление обязательного параметра: "Эмоциональная окраска" * Возможно использование других констант класса "Emotion" в качестве параметра */ ->setEmotion(Emotion::GOOD) /* * Добавление обязательного параметра: "Темп" * Возможно использование других констант класса "Speed" в качестве параметра */ ->setSpeed(Speed::NORMAL) /* * Добавление обязательного параметра: "Формат аудио" * Возможно использование других констант класса "Format" в качестве параметра */ ->setFormat(Format::LPCM) /* * Добавление обязательного параметра: "Частота дискретизации" * Возможно использование других констант класса "Rate" в качестве параметра */ ->setRate(Rate::HIGH);
Выполнение задачи
try { // Обязательный параметр: "Задача" file_put_contents('greeting_developer.ogg', $cloud->request($speech)); } catch (ClientException $e) { echo $e->getMessage(); }
Распознавание речи
Создание задачи
// Обязательный параметр: "Указатель на файл" $text = new Text('greeting_developer.ogg');
Добавление параметров речи (необязательно)
/* * Добавление обязательного параметра: "Язык" * Возможно использование других констант класса "Lang" в качестве параметра */ $text->setLang(Lang::RU) /* * Добавление обязательного параметра: "Языковая модель" * Возможно использование других констант класса "Topic" в качестве параметра */ ->setTopic(Topic::GENERAL) /* * Добавление обязательного параметра: "Фильтр ненормативной лексики" * Возможно использование других констант класса "Filter" в качестве параметра */ ->setFilter(Filter::FALSE) /* * Добавление обязательного параметра: "Формат аудио" * Возможно использование других констант класса "Format" в качестве параметра */ ->setFormat(Format::LPCM) /* * Добавление обязательного параметра: "Частота дискретизации" * Возможно использование других констант класса "Rate" в качестве параметра */ ->setRate(Rate::HIGH);
Выполнение задачи
try { // Обязательный параметр: "Задача" print_r($cloud->request($text)); } catch (ClientException $e) { echo $e->getMessage(); }
Пример на Python
Код на Python 3.8 для озвучивания текста. Для примера я взял текст А.С. Пушкина из Повестей Белкина, потому что он уже в public domain и на него не распространяются авторские права. Текст я сохранил в кодировке и немного почистил от сносок. Так же оставил только русские переводы французских фраз, так как SpeechKit не поддерживает французский язык.
Я заметил, что несмотря на то, что поддерживается синтез звука по отрывкам текста длинной до 5000 тыс знаков, лучше работает с небольшими кусками. Поэтому я поделил текст на отдельные предложения и озвучивал их.
У SpeechKit есть мужские и женские голоса и теоретически, женские реплики можно было бы озвучить отдельно другим голосом, но для этого пришлось бы дополнительно разметить текст, а я хотел сделать максимально простой пример.
Размер выбранного произведения — 22 тыс. знаков. Озвучивание его при помощи премиального голоса Филипп обошлось в 27₽.
Этот скрипт побьет текст на предложения, озвучит их в SpeechKit и потом склеит результат при помощи .
Как установить ffmpeg на ваш компьютер можно посмотреть тут.
Весь код примера на гитхаб.
Кстати если вам хочется получить вместо Ogg Opus файла обычный MP3, то сделать это можно при помощи того же .
Для этого нужно выполнить следующую команду
ffmpeg -i out/output.ogg -acodec libmp3lame out/output.mp3
После этого в терминале вы увидите примерно следющее
ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers built with Apple clang version 12.0.0 (clang-1200.0.32.28) configuration: --prefix=/usr/local/Cellar/ffmpeg/4.3.1_9 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack libavutil 56. 51.100 / 56. 51.100 libavcodec 58. 91.100 / 58. 91.100 libavformat 58. 45.100 / 58. 45.100 libavdevice 58. 10.100 / 58. 10.100 libavfilter 7. 85.100 / 7. 85.100 libavresample 4. 0. 0 / 4. 0. 0 libswscale 5. 7.100 / 5. 7.100 libswresample 3. 7.100 / 3. 7.100 libpostproc 55. 7.100 / 55. 7.100Input #0, ogg, from 'out/output.ogg': Duration: 00:25:40.29, start: 0.006500, bitrate: 85 kb/s Stream #0:0: Audio: opus, 48000 Hz, mono, fltp Metadata: encoder : Lavf57.56.100Stream mapping: Stream #0:0 -> #0:0 (opus (native) -> mp3 (libmp3lame))Press to stop, for helpOutput #0, mp3, to 'output.mp3': Metadata: TSSE : Lavf58.45.100 Stream #0:0: Audio: mp3 (libmp3lame), 48000 Hz, mono, fltp Metadata: encoder : Lavc58.91.100 libmp3lamesize= 12039kB time=00:25:40.29 bitrate= 64.0kbits/s speed=87.9x video:0kB audio:12039kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.001922%
Как видно наш исходный поток был пережат в mp3 с параметрами .
Удачных экспериментов.
Использование компонента
Начиная с версии Oktell 2.12, в служебных и IVR сценариях появился компонент «Синтез речи». Компонент озвучивает заданную фразу (синтезирует речь) с помощью сервиса Yandex SpeechKit. Позволяет сразу воспроизвести файл в линию, либо сгенерировать файл для последующего использования. В компоненте можно включить кэш, тем самым сохраняя все сгенерированные файлы в папку \Oktell\Server\LocalStorage\SynthesisCache. Так как каждый запрос к сервису Яндекс платный, то включенный кэш позволяет сэкономить ваши средства.
Для использования системы синтеза речи Yandex SpeechKit выполните следующие действия:
Шаг 1. Получить авторизационные данные на использование сервиса Yandex SpeechKit.
Шаг 2. Перейдите в Администрирование / Общие настройки / Распознавание речи Yandex SpeechKit Cloud. Введите полученные значения OAuth-токен и Идентификатор каталога в соответствующие поля
Нажмите «Сохранить«. Теперь вы можете использовать синтез речи в сценариях.
Шаг 3. Рассмотрим пример использования синтеза речи в IVR сценарии.
Компонент «Синтез речи«. Озвучивает приветствие абоненту и сохраняет выбор абонента в переменную.
- Режим — Воспроизвести. В этом режиме компонент сразу воспроизводит сгенерированный файл в текущую линию.
- Текст — строка «Здравствуйте! Вас приветствует компания Телефонные Системы! Для соединения с менеджерами нажмите 1. Для соединения с сотрудниками технической поддержки нажмите 2.«. Введенный текст будет передан на сервера Yandex для озвучивания.
- Голос — Zahar. Настройка отвечает за синтезируемый голос: Zahar — мужской голос, Jane -женский. Возможно указание другого значения, если оно поддерживается сервисом Yandex SpeechKit.
- Эмоция — По умолчанию. Настройка отвечает за используемую окраску голоса. Возможные варианты: good, neutral, evil, mixed.
- Кэш — Использовать. Если использовать кэш, то система попытается найти файл с озвученным текстом среди сгенерированных ранее (находятся в папке \Oktell\Server\LocalStorage\SynthesisCache). Рекомендуется всегда включать в целях экономии средств.
- Таймаут ожидания ответа, с — 5. Максимальное время ожидания ответа от серверов Яндекс.
- Символы прерывания — строка «1, 2«. Если абонент нажмет на указанные символы прерывания, компонент сохранит их в буфер и перейдет к следующему блоку.
- Буфер для DTMF — переменная ввод (строковая). Переменная, в которую сохранится введенный символ прерывания.
- Очистить буфер — Да. Указывает на то, что буфер предварительно будет очищен.
Компонент «Меню«. Маршрутизирует абонента на выбранную группу операторов.
- Аргумент — переменная Ввод
- Значения —
- 1 — на компонент «Переключение 1»
- 2, прочее — на компонент «Переключение 2»
Настройка дальнейшей маршрутизации не рассматривается.
Git + 1С. Часть 1. Как подключиться к команде разработки и начать использовать Git
Первая статья из цикла инструкций по работе с Git в 1С-разработке. Рассмотрим, как настроить рабочее место, как получить свою «копию» проекта для разработки и приступить к полезным действиям. Все примеры будут изложены в рамках трёх практических кейсов: 1. Моя команда дорабатывает типовую конфигурацию, использует приватный репозиторий на BitBucket, в котором версионируются внешние отчеты/обработки, расширения конфигураций и правила обмена; 2. Я участвую в стартап-команде, которая разрабатывает свою конфигурацию с использованием Git и GitLab; 3. Я принимаю участие в развитии OpenSource-продукта на GitHub как заинтересованный разработчик (контрибьютор).