Это 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С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Онлайн-заказ - это решение для автоматизации процесса оформления заказов на сайте в торговых организациях. Продукт обеспечивает легкое взаимодействие между компанией и клиентами через веб-интерфейс, интегрированный с 1С:Предприятие. Система позволяет снизить операционные расходы, повысить лояльность клиентов и оптимизировать работу отдела продаж.

57600 руб.

26.11.2024    1562    1    1    

4

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

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

36000 руб.

03.08.2020    18574    20    22    

18

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 1C:Бухгалтерия Управленческий учет Платные (руб)

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23): 1С:Управление торговлей, 1С:Управление Нашей фирмой 3, 1С:Комплексная автоматизация 2, Объединенное решение: Модуль 1С:CRM 3 (3.0.21.3) +1С:ERP Управление предприятием 2. При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

7200 руб.

04.05.2021    20721    13    19    

18

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

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

14400 руб.

20.12.2024    478    2    0    

5

Обмен с ГосИС WEB-интеграция Бухгалтер Пользователь Платформа 1С v8.3 Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

2400 руб.

28.04.2016    92199    184    217    

337
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. CheBurator 2695 22.04.17 03:48 Сейчас в теме
озвучивать список товаров для комплектовщика в мобильном приложении? это видно совсем от безысходноси, когда штрихкодирования нет...
2. nbeliaev 836 22.04.17 07:58 Сейчас в теме
(1) там было и штрихкодирование, отдельно форма поиска и еще вот озвучка. такое вот пожелание клиента )
3. Pr-Mex 150 22.04.17 22:52 Сейчас в теме
Программа балаболка это всё делает на локальном компе, через командную строку и без ограничения по количеству текста.
LLIKIPER; TreeDogNight; +2 Ответить
5. TreeDogNight 22 24.04.17 14:11 Сейчас в теме
(3) Где можно подробнее почитать об интеграции 1С с этой программой?
8. Pr-Mex 150 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. nbeliaev 836 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. nbeliaev 836 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 514 25.04.17 16:40 Сейчас в теме
Узкий рынок получается. Озвучку очереди на чужом онлайн-сервисе с невнятными гарантиями я бы точно делать не стал.
Остается некритичный функционал, но достаточно полезный, чтобы за него платить. Навскидку в мобильных приложениях что-то такое придумывается. Типа озвучить че-нить полезное, пока за рулем. Но в мобилочках вроде родные TTS-апишечки есть?
12. nbeliaev 836 25.04.17 20:23 Сейчас в теме
(11) в телефоне STT есть, а вот с TTS не разбирался, да и на вскидку что-то не припомню, нигде не попадался на глаза.
Не знаю, но мне все равно больше нравится брать решение из облака. Не важно что это TTS или что-то еще - быстро, просто, надежно. Понятно, что какие-то супер секретные данные никто передавать никуда не будет, а вот номер очереди, почему бы и нет.
15. herfis 514 26.04.17 09:21 Сейчас в теме
(12) Простота и универсальность - главное преимущество. Поэтому и нравится. Все остальные преимущества - у локальных сервисов.
14. anosin 29 26.04.17 09:10 Сейчас в теме
Бот Максим в вк работает без ограничений
16. Cvetic 307 27.04.17 08:28 Сейчас в теме
Спасибо! Для меня открытие, что 1С умеет говорить :)
Можно сделать какое-нибудь поздравление с озвучиванием.
17. triviumfan 98 23.04.18 21:55 Сейчас в теме
Не работает, возвращает 400 (bad request)
19. by_1Cnik 240 10.06.21 23:24 Сейчас в теме
&НаКлиенте
Процедура АудиоКоманда(Команда)

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

КонецПроцедуры
One_Assembler; +1 Ответить
Оставьте свое сообщение