Это 1С говорит

22.04.17

Интеграция - WEB-интеграция

Учим 1С произносить любой текст без установки стороннего ПО буквально за 5 строк кода.

Приветствую тебя, уважаемый читатель!

Сегодня поговорим о том, как быстро и легко научить 1С произносить любые фразы приятным женским голосом. 

Что нам потребутеся:

  1. Установленный IE 9 версии и выше
  2. Стационарная или мобильная платформа версий 8.X и выше 
  3. Доступ в Интернет

Для начала создадим внешнюю обработку с одной командой, действия которой будут выполняться в контексте сервера. Также потребутеся поле ввода, в котором будем писать текст для произношения. Сама по себе платформа не умеет синтезировать речь (англ. text-to-speech, tts), но зато в Интернете есть ресурсы, которые это могут делать быстро, качественно и условно бесплатно. Один из таких это http://voicerss.org, он предоставляет в день до 350 бесплатных запросов с объемом данных для одного запроса не более 100Kb, что вплоне достаточно для решения каких-то небольших задач. Есть возможность синтеза речи для основных языков мира, русского в том числе. Также предоставляет возможность использовать API по протоколу HTTPS. Для того, чтобы использовать API данного ресурса необходимо на нем зарегистрироваться. Регистрация простая, не требует ввода данных банковской карты (чуть позже объясню причем тут карта), только e-mail. После регистрации будет доступен персональный API key.

Теперь вернемся к обработке. Разместим на форме еще одно поле ввода, в котором будем писать только что полученный API key. Разместим следующий код в серверном обработчике команды формы

    ВременныйФайл = ПолучитьИмяВременногоФайла("mp3");
	Соединение = Новый HTTPСоединение("api.voicerss.org");
	Запрос     = Новый HTTPЗапрос("?key="+Ключ+"&hl=ru-ru&src="+ЧтоБудемГоворить);
	Ответ      = Соединение.Получить(Запрос, ВременныйФайл);
	Если Ответ.КодСостояния <> 200 Тогда
		Сообщить("Возникла ошибка. Код ответа сервера " + Ответ.КодСостояния);	
	КонецЕсли;

  Ключ - реквизит формы, значение равно API key, ЧтоБудемГоворить - реквизит формы, значение равно тексту, который хотим произнести. В данном случае используем метод GET (хотя сервис может переварить и POST также) для получения ответа от сервиса voicerss.org. Тело ответа помещаем во временный файл. Все, теперь у нас есть mp3 файл, в котором женским голосом озвучен наш текст. Вариантов как его воспроизвести в принципе достаточно. Предлагаю воспользоваться пожалуй самым простым. Добавим реквизит формы с типом строка и разместим его на форме, выбрав для него вид ПолеHTMLДокумента. Добавим следующий код в нашу процедуру

ПолеHTML = "<!DOCTYPE html>
	|			<html>
	|			 <head>
	|			  <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
	|			  <meta http-equiv='X-UA-Compatible' content='IE=9' />
	|			 </head>
	|			 <body>
	|			  <audio controls autoplay = 'autoplay'>
	|			    <source src=" + ВременныйФайл + " type='audio/mp3'>
	|			    Не поддерживается HTML5.
	|			  </audio>
	|			 </body>
	|			</html>";

 Строкой <meta http-equiv='X-UA-Compatible' content='IE=9' /> мы явно указываем, что хотим использовать IE 9, так как только с этой версии поддерживается HTML5, в котором появился тег <audio> (здесь можно почитать про него подробнее), с помощью которого будет воспроизводиться наш файл. 

Ниже скрин полученной обработки

Кто-то спросит, зачем это все? Ну, например, можно реализовать озвучку очереди, номер заказов клиентов или, например, Вы пишите на мобильной платформе кулинарный справочник (затея конечно такая себе )) ) и хотите, что бы он озвучивал рецепт и издавал какие либо звуки по таймингу рецепта. У меня например была задача озвучивать список товаров для комплектовщика в мобильном приложении.

p.s. Есть очень классный сервис для синтеза речи https://www.ivona.com/, в нем есть мужской голос Максим, который используется для озвучки донатов на http://www.twitch.tv, но вот как раз для него при регистрации нужно указывать данные своей банковской карты, хотя там тоже есть бесплатный порог использования.

Вступайте в нашу телеграмм-группу Инфостарт

tts text to speech синтезатор речи

См. также

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM / LOGICSTARS. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM / LOGICSTAR разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    22206    32    24    

26

SALE! 15%

WEB-интеграция Программист Бизнес-аналитик 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

17280 14688 руб.

20.12.2024    4385    22    4    

23

WEB-интеграция Программист Руководитель проекта 1С:Предприятие 8 1C:Бухгалтерия 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки. Основные преимущества: 1. Документация API создаётся автоматически. Удобна для программной обработки. 2. Изменить API столь же просто как настроить отчёт. Можно опубликовать существующий вариант отчёта. 3. Отчёты в API поддерживают параметры (Период, ДатаНачала и др.) 4. При создании простых методов не требуется изменять конфигурацию. 5. Поддерживается работа с планами обмена.<br/> 6. Возможно настроить отправку из 1С данных корреспондирующей системе, для случаев когда 1С сама "знает" какие данные нужно отправить. 7. После записи в 1С Ле Мурр может возвращать соответствие полученных идентификаторов созданным в 1С объектам данных.

36000 руб.

27.09.2024    10158    7    5    

11

WEB-интеграция Программист 1С:Предприятие 8 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разработана для автоматизации передачи данных между сервисом Vetmanager с 1С: Бухгалтерия 3.0. Решение позволяет загружать документы и справочники из Ветменеджер в 1С:Бухгалтерию, сокращая время на ручной ввод данных и минимизируя ошибки.

12000 руб.

02.02.2021    20959    61    52    

38
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. CheBurator 3232 22.04.17 03:48 Сейчас в теме
озвучивать список товаров для комплектовщика в мобильном приложении? это видно совсем от безысходноси, когда штрихкодирования нет...
2. nbelyaev 838 22.04.17 07:58 Сейчас в теме
(1) там было и штрихкодирование, отдельно форма поиска и еще вот озвучка. такое вот пожелание клиента )
3. Pr-Mex 184 22.04.17 22:52 Сейчас в теме
Программа балаболка это всё делает на локальном компе, через командную строку и без ограничения по количеству текста.
LLIKIPER; TreeDogNight; +2 Ответить
5. TreeDogNight 22 24.04.17 14:11 Сейчас в теме
(3) Где можно подробнее почитать об интеграции 1С с этой программой?
8. Pr-Mex 184 24.04.17 21:34 Сейчас в теме
(5) В этом проекте реализовано такое:
https://github.com/silverbulleters/vanessa-behavior

Вот пример видео - где использовалась озвучка, сгенерированная этой программой.
https://www.youtube.com/watch?v=72kyk7OUeFU&list=PL2OubLDBf738DuPcRxPI_GZehYuxjd0s1
1cWin; Makushimo; +2 Ответить
4. user618912_redgad 14 24.04.17 13:54 Сейчас в теме
Также делал озвучку для комплектовщика. Только проигрыванием записанных файлов. Используются служебные штрих-коды. Наименования этих штрих - кодов и надо было озвучивать.
Так что инструмент востребован.
6. echonok 11 24.04.17 15:01 Сейчас в теме
Автор, вы закрасили ключ на одном скрине, но на втором он у вас открыт)
dj_serega; +1 Ответить
7. nbelyaev 838 24.04.17 15:03 Сейчас в теме
(6) Все равно он тестовый ))
dj_serega; +1 Ответить
9. Nehc 22 25.04.17 15:29 Сейчас в теме
Ааа... Зачем такие сложности? Можно же просто:http://infostart.ru/public/528514/

Тогда

СинтезаторРечи = Новый COMОбъект("SPEECH.SpVoice");
СинтезаторРечи.Speak("Что там за булки-то?");



В прочем, я думаю, что чем больше вариантов, тем лучше! ;)
10. nbelyaev 838 25.04.17 15:51 Сейчас в теме
(9) в публикации написано, что необходимо загрузить и установить какие-то доп. пакеты. Здесь ничего не нужно устанавливать, сложности никакой, плюс за 10$ в месяц получаете статистику (и такое бывает нужно). ну и плюс решение с ком объектом будет работать только под win. Так что кому что удобнее ))
13. Lelic24RUS 26.04.17 09:07 Сейчас в теме
(10)
ну и плюс решение с ком объектом будет работать только под win

а решение с IE9? )))
18. qazaas 09.07.18 12:47 Сейчас в теме
(9) (10) А у меня вот такой вариант записан:

SAPI_SpVoice = Новый COMОбъект("SAPI.SpVoice");
SAPI_SpVoice.Speak(Фраза);


Может быть есть еще варианты у кого-нибудь? =)

P.S. устанавливать дополнительно ничего не нужно, говорит средствами системы.
11. herfis 520 25.04.17 16:40 Сейчас в теме
Узкий рынок получается. Озвучку очереди на чужом онлайн-сервисе с невнятными гарантиями я бы точно делать не стал.
Остается некритичный функционал, но достаточно полезный, чтобы за него платить. Навскидку в мобильных приложениях что-то такое придумывается. Типа озвучить че-нить полезное, пока за рулем. Но в мобилочках вроде родные TTS-апишечки есть?
12. nbelyaev 838 25.04.17 20:23 Сейчас в теме
(11) в телефоне STT есть, а вот с TTS не разбирался, да и на вскидку что-то не припомню, нигде не попадался на глаза.
Не знаю, но мне все равно больше нравится брать решение из облака. Не важно что это TTS или что-то еще - быстро, просто, надежно. Понятно, что какие-то супер секретные данные никто передавать никуда не будет, а вот номер очереди, почему бы и нет.
15. herfis 520 26.04.17 09:21 Сейчас в теме
(12) Простота и универсальность - главное преимущество. Поэтому и нравится. Все остальные преимущества - у локальных сервисов.
14. anosin 29 26.04.17 09:10 Сейчас в теме
Бот Максим в вк работает без ограничений
16. Cvetic 308 27.04.17 08:28 Сейчас в теме
Спасибо! Для меня открытие, что 1С умеет говорить :)
Можно сделать какое-нибудь поздравление с озвучиванием.
17. triviumfan 102 23.04.18 21:55 Сейчас в теме
Не работает, возвращает 400 (bad request)
19. by_1Cnik 254 10.06.21 23:24 Сейчас в теме
&НаКлиенте
Процедура АудиоКоманда(Команда)

// Работает по умолчанию во всех современных ОС, которые поддерживают .NET Framework 4
АудиоГолос = Новый COMObject("SAPI.SpVoice");
АудиоГолос.Speak("Я верю, друзья, караваны ракет.
|Помчат нас вперед, от звезды до звезды.
|На пыльных тропинках далеких планет.
|Останутся наши следы.");

КонецПроцедуры
One_Assembler; +1 Ответить
Для отправки сообщения требуется регистрация/авторизация