1 (изменено: Yurachb, 2019-05-19 11:55:37)

Тема: VBS: Напоминание о дне недели

Напоминание о текущем дне недели.
Звуковые файлы взяты давно из переводчика от Гугл. Если у кого есть файлы лучшие, опубликуйте. Также, если есть, опубликуйте ссылку на подобный ресурс...

Post's attachments

days.7z 21.96 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

2 (изменено: Yurachb, 2019-05-09 01:52:44)

Re: VBS: Напоминание о дне недели

Некто пишет
Планируется ли в следующей версии сделать напоминание о текущем часе?

В самом файле информация об этом есть.

Я много лет пользуюсь, и это оказалось весьма полезным.

В моей личной версии есть HTA дополнение, напоминающее о событии и о оставшемся до него времени, но не хватает некоторых слов, для чего тему и опубликовал и попросил помочь найти „места” озвучивания слов...
================================================
На февраль 2019, в контексте последних (дополнительных) моих изысканий, родилось такое вот hta приложение-напоминалка на createPopup() просто „висящее” текстом на рабочем столе (или на панели задач) – инструкции по настройке в самих файлах.

Выявился полезный эффект, когда по удалении окна "mv_rm.hta" за границы экрана монитора клавишей <Alt> и по вызове клавишами (<Ctrl>+<Alt>+<Z>) скринсейвера, окошко createPopup() остаётся на виду. Впрочем, для такого сервиса в архиве имеется скрипт.

Тема перенесена на:
http://forum.script-coding.com/viewtopi … 73#p132873

3

Re: VBS: Напоминание о дне недели

Для чтения по-русски в win10 можно использовать объект SAPI.SpVoice, а в Win7 SPEECH.SpVoice.

4 (изменено: Yurachb, 2018-08-24 12:13:23)

Re: VBS: Напоминание о дне недели

Скачал „Елена”, но сценарий VBScript.vbs говорит:
Ошибка: Не удается найти класс программируемых объектов с именем "SPEECH.SpVoice".
Тогда как озвучивание переводчика 'xetranslator' работает.
Впрочем, такой звук, в сравнении с гугловским или с микрофонным, совсем не годится.
Спасибо, конечно, но, к сожалению, вопрос не снят.

5

Re: VBS: Напоминание о дне недели

Надо установить ещё:
https://www.microsoft.com/en-us/downloa … x?id=27225
Если Елена не устраивает, то погуглите другие голоса.

6 (изменено: Yurachb, 2018-09-19 17:59:23)

Re: VBS: Напоминание о дне недели

Установил компонент Speech Platform – файл SpeechPlatformRuntime.msi
Прямая ссылка (x64):
https://yadi.sk/d/FBI8vqNwZbPaR
и всё заработало, но голос слишком глухой.

Русский голос Елена прямая ссылка:
https://yadi.sk/d/Y-axw4ZnZbPoS

На семёрке тоже работает, но через транслит:
CreateObject("Sapi.SpVoice").Speak"Privet"

7

Re: VBS: Напоминание о дне недели

https://harposoftware.com/en/russian/24 … Voice.html

8

Re: VBS: Напоминание о дне недели

Yurachb, как альтернативу можно использовать WMPlayer.OCX (вроде как он присутствует в Win начиная с XP) в совмещении с google translate. К тому же можно сохранить фразы через XMLHTTP/WINHTTP + ADODB.Stream для кэша.

textToSpeech.wsf


<?xml version="1.0"?>
<job>
	<script language="vbscript">
	<![CDATA[
	Dim vDate
	vDate = Now
	vDate = "Сегодня " & WeekDayName(WeekDay(vDate)) & " " & FormatDateTime(vDate,vbShortDate) & " " & FormatDateTime(vDate,vbShortTime)
	]]>
	</script>
	<script language="jscript">
	<![CDATA[
	
	textToSpeech(vDate)
	
	function textToSpeech(text, language){
		text = String(text||"")
		with(new ActiveXObject("WMPlayer.OCX")){
			settings.volume = 100
			url = "https://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&q=" + encode(text) + "&tl=" + encode(language||"ru")
			while(playState != 1){
				WScript.Sleep(100)
			}
		}
		function encode(s){
			return encodeURIComponent(s).replace(/%20/g,"+")
		}
	}
	]]>
	</script>
</job>
Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

9 (изменено: Yurachb, 2018-09-24 21:18:06)

Re: VBS: Напоминание о дне недели

Xameleon: можно сохранить фразы через XMLHTTP/WINHTTP + ADODB.Stream для кэша.

Всё же я должен сделать хоть и простую, но доступную для всех желающих, а не только для нас, „скриптёров” или „комп-юзеров”, программку...
Некогда была озвучка на онлайн-сервисе Гугл-переводчика (сейчас там даже нет перевода для текста; я так подозреваю – нет для русских), и я из кэша извлекал аудиофайлы...
Сия wsf-схема отлично работает; но только онлайн, да и при медленном соединении с недопустимыми задержками; то есть тут следует закончить, написав практическую схему для создания файлов в кэше, и тогда это будет то что надо.

10

Re: VBS: Напоминание о дне недели

Yurachb, пардоньте. К сожалению, не понял Ваши комментарии.

Некогда была озвучка на онлайн-сервисе Гугл-переводчика (сейчас там даже нет перевода для текста; я так подозреваю – нет для русских), и я из кэша извлекал аудиофайлы...

Так я в скрипте и использую генератор аудио от google translate. Он как работал, так и работает.

Сия wsf-схема отлично работает; но только онлайн, да и при медленном соединении с недопустимыми задержками.

Опять не понял смысл фразы. У Вас скрипт работает с ошибками в случае нестабильной или низкой скорости связи ?

написав практическую схему для создания файлов в кэше, и тогда это будет то что надо.

Требуется помощь или Вы уже Сами справились с задачей ?

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

11 (изменено: Yurachb, 2018-09-24 22:14:54)

Re: VBS: Напоминание о дне недели

Синтаксис wsf мне неизвестен, и я ничего из этого не понимаю, а учиться некогда, да и нет возможности. Я проверил кэш, там гугловский translate_tts[1].dat, а нужен аудиофайл, вот и всё: будет, возьму, не будет, пойду дальше искать. Я имел ввиду страницу: http://translate.google.ru/#en/ru, где такого сервиса больше нет – да и вообще ничего, думаю для русских, нет: у меня страница более не работает.

12

Re: VBS: Напоминание о дне недели

1) Синтаксис WSF здесь вообще непричём. Вы можете этот пример собрать как на голом JS и VBS. WSF лишь позволяет немного расширить функционал и удобство использования скриптов.

2) Видимо опять Вас не понимаю. Как же нет ? Я регулярно этим сервисом пользуюсь для перевода. https://translate.google.ru/

+ открыть спойлер

https://i.imgur.com/T4q8Upn.png

При нажатии на кнопку динамика отправляется GET запрос подобного типа:

https://translate.google.com/translate_ … &tl=en

Хотя параметров там на самом деле побольше.

3) Т.е Вам всё-таки нужен сэмпл по получению аудиофайла с google translate ?

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

13

Re: VBS: Напоминание о дне недели

Возможно у Yurachb отключен javascript, либо IE устаревший.

14

Re: VBS: Напоминание о дне недели

Malcev, видимо да.

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

15 (изменено: Yurachb, 2018-09-25 01:48:59)

Re: VBS: Напоминание о дне недели

IE8. В Рамблер-браузере тоже ничего нет, только:
...войдите в аккаунте, Выбрать все и Поделиться; однако перевод работает.
Войти же не получается, в меню восстановления пароля кнопки неактивны, хотя и пробовал уже в Google Chrome... Сменить № телефона не предлагает, но пишет № старый... Итак, вошёл, но в Google Chrome картина всё та же: изображения динамика нет.

В IE8 же выскакивает страница: 403. That’s an error

Your client does not have permission to get URL / from this server. (Client IP address: ***.***.***.*)

У вашего клиента нет разрешения на получение URL / с этого сервера. (IP-адрес клиента: ***.***.***.*)

Вот я и подумал о блокировке по „вражьей” причине...

16

Re: VBS: Напоминание о дне недели

Yurachb,

1)

Итак, вошёл, но в Google Chrome картина всё та же: изображения динамика нет.

Что-то печально у Вас с браузером дела обстоят. А какая у Вас система, если не секрет ? Не XP ли часом ?

2) Попробовал собрать Вам код на VBS с комментариями. Думаю он прояснит ситуацию. При запуске скрипт сохраняет аудио файлы с именами дней недели в том же каталоге.


Option Explicit

Const adTypeBinary			= 1
Const adSaveCreateOverWrite = 2

Dim i, oGoogleSpeech, strText

Set oGoogleSpeech = new cGoogleSpeech

'Создание объекта Stream для записи файлов на диск
With CreateObject("ADODB.Stream")
	.Type = adTypeBinary
	For i = 1 to 7
		'Перебор всех дней недели и получение их текстового наименования
		strText = WeekdayName(i)
		'Запрос к Google Speech для получения аудио файла и возврат результата в Stream
		.Open
		.Write oGoogleSpeech.TextToAudioStream(strText,"ru")
		'Сохранение файлов с именами дней недели
		.SaveToFile strText & ".mp3", adSaveCreateOverWrite
		.Close
	Next
End With

'Класс модуль для выполнения запросов к сервису google translate
Class cGoogleSpeech
	Private oHtmlDoc
	Private Sub Class_Initialize()
		'Создание объекта HTMLDocument для использования движка JavaScript и его функции encodeURIComponent
		Set oHtmlDoc = CreateObject("htmlfile")
		'Инициализация движка JS
		oHtmlDoc.script.execScript ";"
	End Sub
	'Функция кодирование URI
	Private Function EncodeURI(Text)
		EncodeURI = Replace(oHtmlDoc.Script.encodeURIComponent(Text),"%20","+")
	End Function
	'Функция получения байт массива аудио записи в mp3
	Function TextToAudioStream(Text, Language)
		With CreateObject("WinHttp.WinHttpRequest.5.1")
			'Смена User-Agent, чтобы Google не отсекал запросы
			.Option(0) = "Api request"
			.Open "GET", "https://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&q=" + EncodeURI(Text) + "&tl=" & EncodeURI(Language), False
			.Send
			if .Status <> 200 Then Err.Raise vbObjectError + 1, TypeName(Me), "Failed to request google api ! Response status: " & .Status & " " & .StatusText
			'Возврат байт массива из функции
			TextToAudioStream = .ResponseBody
		End With
	End Function
End Class
Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

17 (изменено: Yurachb, 2018-09-25 01:55:59)

Re: VBS: Напоминание о дне недели

Win7x64
Перевёл слова: 403. Это ошибка, и динамики появились...

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

18

Re: VBS: Напоминание о дне недели

Yurachb, хорошо. На счёт системы теперь понятно. Но, к сожалению, дальнейший ответ не понимаю. Постарайтесь, пожалуйста, пояснять более развёрнуто.

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

19

Re: VBS: Напоминание о дне недели

Не было ни в Рамблер, ни в Гугл браузерах, а на третий раз динамики появились.

20

Re: VBS: Напоминание о дне недели

Yurachb,

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

Искажены ? У меня дни недели читаются абсолютно нормально. Да и там искажаться вроде бы особо не чему.

Можете выложить пример получившегося аудио с искажениями ?

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

21

Re: VBS: Напоминание о дне недели

Yurachb пишет:

, но слова сильно искажены

Если вас не устраивает качество гугла, то поищите другие онлайн синтезаторы речи.
Например от яндекса.

22

Re: VBS: Напоминание о дне недели

Присоединяюсь к словам коллеги Malcev-а. Вполне можно использовать движок яндекса.

http://tts.voicetech.yandex.net/tts?for … xt=суббота

или responsivevoice

https://code.responsivevoice.org/getvoi … der=female

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

23

Re: VBS: Напоминание о дне недели

Я, более чем на полтора месяца выбывший из обычной жизни зарабатыванием на жизнь сбором каштанов, ибо иного заработка у меня нет, снова в Сети.

Где-то в мае 2011 я получил из кэша IE8 файлы, из которых несколько порочными были два: „воскресеньЯ” и „Фторник”; ну а несколько позже сервис озвучивания стал недоступным, как теперь выяснилось, похоже только в IE8-; однако перевод ещё много лет работал, доколе Гугл, вероятно апгрейдив страницу, совсем упразднил поддержку IE8-, попутно натупив с названием браузера клиентом. Недаром он ГУГЛ = ГУ = ГОлос (Иов.39:25) ГЛавный, ГЛобальный (всепланетный, всенародный сервис – разноцветный же их „лейбл” означает истолкование, в чём они явно преуспели, и стукачество, шпионство...), а здесь: ГУбить (поддержку IE8-) ГЛупость (Гугл не может не тупить, как, впрочем, и Яндекс, хотя сей в неразумии по причине красного цвета, и означающего погрешность и несоответствие, излишество, заблуждение, глупость, безумие,.. вот и Яндекс таким, пока их значок будет красным, и останется).

В нынешнем Гугловском голосе искажения несколько иного рода, нежели которые были в файлах от 2011 года... Теперь слова звучат со слишком выразительной интонацией, то есть в синтезаторе задана слишком большая девиация частоты, к примеру в слове „среда”; а в слове „п[ея]тница” слышим ещё и два ударения; длительность слогов похоже постоянная, оттого время звучания равных по длине слов, но с разным количеством слогов, слишком разнится: одни слова проговариваются слишком быстро, к примеру „четверг”, а слова с короткими слогами, при таком примитивном алгоритме работы синтезатора, будут неестественно растянутыми; то есть тут нужна будет и хорошая аудиопрограмма для придания словам требуемого темпа и для подстройки девиации частоты. Также из погрешностей – недостаточный уровень громкости, что, впрочем, легко решается в WinXP... Но, в принципе, проблема решена.

И касательно самой темы, вот какая имеется ненормальность. Окна HTA, даже запускаемые невидимыми, к сожалению, перехватывают на себя фокус (однако я с этим мирюсь и лично мне это подходит [хотя есть и некоторые неудобства], ибо, к примеру, смотря фильм, я могу не услышать важное сообщение; ну а тут появляется панель задач...); посему приложения придётся строить на VBScript, хотя я в нём не силён – зато нужные асинхронным js-таймерам последовательности, в синхронно работающих vb-таймерах не понадобятся, и все конструируемые „схемы” явно упростятся.

24

Re: VBS: Напоминание о дне недели

Yurachb пишет:

посему приложения придётся строить на VBScript

Стройте на JScript, кто ж мешает.

25

Re: VBS: Напоминание о дне недели

Yurachb
Попробуйте для озвучки использовать программку  Балаболка. Работает на всех версиях Windows, начиная с ХР.
С подключенными голосовыми движками - отлично может озвучивать, либо создавать звуковые файлы из любого текста, как wav, так и mp3 и ряд других форматов.
Есть возможность подключения и коррекции словарей произношения, исправляющих произношения нужных слов на более правильные.
Рекомендую использовать голосовой движок IVONA-2 Tatyana. Также очень неплох старый, но все еще актуальный движок Nikolai. Он встречается в двух модификациях, лучше более поздняя. Из относительно неплохих еще могу порекомендовать - движки Алёна и Максим.
На сайте Балаболки в принципе есть указание и на ряд бесплатных движков.  Но лучше все же найти вышеуказанные, они более качественные.
Также на их сайте есть "Консольное приложение", которое можно запускать с параметрами строки (движок, темп речи, высота звука, сам текст) из командной строки в скрытом виде.
Несколько лет я использовал такой способ на работе для напоминания о событиях дня, разместив запускающий файл в Планировщик заданий.
Однако потом отказался. Заменив на более простой способ чтения звуковых файлов через скрипт, запускаемый оттуда же. Т.к. скажем при каждой переустановке системы с установкой движков заново, все они прописываются по разному каждый раз. Проще все-таки иметь уже готовый набор звуковых файлов, записанных любимым голосовым движком.
Голосовыми движками интересуюсь уже довольно таки давно, где-то с 2002-3 года тестирую все голосовые движки и использующие их программы, что попадаются, поэтому некоторый опыт по озвучиванию различных текстов, прежде всего художественных, все же накопил. ))
В связи с этим хотелось бы сообщить об одном очень важном моменте в озвучивании любого текста голосовыми движками.
Когда голосовые движки читают текст, при этом - и ударение в словах, и даже само произношение слов - очень сильно зависит от стоящих рядом знаков препинания. Т.е. расставляя эти знаки, а иногда даже разбивая вынужденно слово по слогам и вставляя эти знаки между слогами, можно добиться не только большей верности произнесения слова, но также и разных интонаций его произнесения.
Как наглядный пример различий - пристегнул два файла чтения Татьяны. В первом были написаны дни недели просто в столбец без знаков препинания. Во втором - через запятые, с точкой в самом конце.

Post's attachments

dni1-2.rar 286.68 kb, 2 downloads since 2018-11-22 

You don't have the permssions to download the attachments of this post.