Вывести список имён и аббревиатур в текстовый файл и на выбор:
1) отправить файл за озвучку как книгу
2) копировать список имён и вставить непосредственно в браузере в окошке озвучки Яндекс на сайте и прослушивать.
Второй вариант мне кажется предпочтительне из-за наглядности и возможности подбирать ударение прямо в окне браузера и сразу прослушать как изменилось ударение.
Второй вариант мне кажется предпочтительне из-за наглядности и возможности подбирать ударение прямо в окне браузера и сразу прослушать как изменилось ударение.
Найти имена не проблема. Интересует прослушивание совмещенное с добавлением в словарь. Все-таки эти два действия неразрывны.
Копирование на сайт попробовал. Не выход. Проблема в том, что списки обычно большие. Десятки, иногда сотни имен. Любая попытка отредактировать слово приводит к сбросу кэша, новой озвучке и воспроизведению с самого начала списка. Даже если удалять корректно произнесенные — это не езда, а ёразание. Хватит и оставшихся "кривых", которые нужно внести в словарь.
Но за ответ все равно спасибо. Знать что проблема не решается, лучше чем гадать есть ли решение))
ЗЫ. Возникло желание изучить стандарт SAPI и написать wrapper, который для системы виден как обычный голос, а звуковой поток генерирует не сам, а подтягивает из веб сервиса. Жаль нет исходников yndxfilipp.exe, хоть одна часть вопроса была бы решена.
Интересует прослушивание совмещенное с добавлением в словарь.
в старой сборке Демагога был функционал озвучить выделенный текст для старых голосов Яндекс. На сколько удобно ,когда между запуском озвучки и самой озвучкой около 10 секунд надо тестировать. Ограничение 1000 символов.
Yandex TTS
Добавлено: 25 ноя 2020 17:13
flegont
Для проверки произношения небольших текстов (5000..10000 символов) я попробовал использовать yndxfilipp.exe напрямую, через скрипт Демагога. Все словари, к которым эта утилита постоянно обращается - обнулил. Play_5.hta тоже выкинул, как и Openfilbox.exe.
Текст на озвучку (Data.txt) готовит сам скрипт, с минимальными изменениями: удаление лишних пробелов и пустых строк, и вставка метки - делителя на фрагменты. А так же замена парных кавычек "..." на книжные. Ибо иначе yndxfilipp.exe выпадает в ошибку. (Хотя сам демо-сервис Яндекс, при ручном использовании, кавычки " воспринмает нормально).
В общем, всё сделал для чистоты эксперимента Пока удовлетворительно, а там посмотрим.
Yandex TTS
Добавлено: 25 ноя 2020 19:12
wasyaka
Lecron писал(а):
Интересует прослушивание совмещенное с добавлением в словарь.
tonio_k писал(а):
в старой сборке Демагога был функционал озвучить выделенный текст для старых голосов Яндекс. На сколько удобно ,когда между запуском озвучки и самой озвучкой около 10 секунд надо тестировать. Ограничение 1000 символов.
Текст большой 852кб в АNSI предварительно обработанный словарями...
Новые слова - всё что встречается больше одного раза
Звука нет по причине отсутствия мкф...
0001.mp3
(602.15 КБ) 91 скачивание
Одновременно записывать видео и прослушивать, не удобно и непривычно...
Текст на озвучку (Data.txt) готовит сам скрипт, с минимальными изменениями: удаление лишних пробелов и пустых строк, и вставка метки - делителя на фрагменты. А так же замена парных кавычек "..." на книжные. Ибо иначе yndxfilipp.exe выпадает в ошибку. (Хотя сам демо-сервис Яндекс, при ручном использовании, кавычки " воспринмает нормально).
Я на такой случай для себя, в сборку яндекс-демагога от tonio_k, добавил функцию для работы с демкой. Пользуюсь пока в основном, для подсветки и исправления омографов, но удобнее отправлять текст на сервис сразу из активной вкладки демагога, без создания промежуточного файла. Скрипт как пример использования, называется "yndx_tts.lua", повесил на ctrl-shift-2.
По поводу кавычек - их можно экранировать пионерским слэшем, тогда тоже ошибки небудет. Вообще импортом из fb2, зачисткой текста от всяких опасных символов, занимается Play_5.hta, поэтому без нее может быть все что угодно. Вот эта сборка со скриптом, про которую писал выше, экранирование кавычек добавил сейчас непосредственно в скрипт.
Качалка здесь немного другая, но разница проявляется только иногда по вечерам, когда видимо яндекс под повышенной нагрузкой.
PS: аудиофайлы искать в папке Audio, словари никакие не задействованы, просто качалка, вся предварительная работа с текстом на ваше усмотрение.
1) Знак «-» добавляет паузу, но программа его коверкает и он не работает. Например - Я Yandex .«-».«-».«-».«-». SpeechKit.
А какие символы все-таки делают паузу? Я на форуме не нашел информации (чтобы здесь работала).
И насчет звездочки, при добавлении новых слов в словарь сборка yndx_tts64 иногда ведет себя странно, то так и говорит "слово звездочка", то не делает ударение, которое ей прописывается в словаре. Интересует, в основном,окончание слов.
А какие символы все-таки делают паузу? Я на форуме не нашел информации (чтобы здесь работала).
И насчет звездочки, при добавлении новых слов в словарь сборка yndx_tts64 иногда ведет себя странно, то так и говорит "слово звездочка", то не делает ударение, которое ей прописывается в словаре. Интересует, в основном,окончание слов.
Паузу можно сделать например косой чертой с переносом строки:
Расцветали яблони
/
/
/
и груши.
Чем больше будет таких строк с косой чертой в начале тем дольше пауза.
В записях словаря не должно быть звездочек после знака равно. Если в какой то записи они есть, их надо удалить. В выложенной сборке такие ошибочные записи встречаются, но чуть ниже я выкладывал зачищенные словари. Короче если в текст попадает звездочка, которой в тексте не было, то это может быть только из-за звездочки в правой части записи.
Чем больше будет таких строк с косой чертой в начале тем дольше пауза.
В записях словаря не должно быть звездочек после знака равно. Если в какой то записи они есть, их надо удалить. В выложенной сборке такие ошибочные записи встречаются, но чуть ниже я выкладывал зачищенные словари.
Благодарю вас, косая черта и звездочка слева работают. Исправил в своем словаре. А есть ли возможность в каком-нибудь текстовом редакторе автоматически поставить несколько косых черточек везде, где есть две пустые строки подряд, например (так обычно выделяют название книги и отдельные главы)?
И еще момент, насчет сухих щелчков в итоговом файле ogg, от чего они зависят, от загруженности Яндекса? Вчера их было много, сегодня почти нет.
Вот, зачистил словари от указанных косяков, пока руками при помощи нотепада, но потом хочу сделать так чтоб в процессе сортировки само проверялось на корректность.
Оба надо положить в папку Sys.
Положил оба словаря в папку Sys. Не могу изменить в UserLocal.txt произношение латинских цифр. Поставил с I=1 до XXX=30, но VIII произносится как вэтри, а с XI и до XXX ни одно число не произносится как указано после знака "=". Пробовал и маленькие, и большие буквы, и запись числа буквами - не помогает.
Yandex TTS
Добавлено: 26 ноя 2020 12:04
GIS88
andko,
У меня в UserLocal - часть I=часть 1 и глава I=глава 1, до 50 добавлены и нормально произносится.
А есть ли возможность в каком-нибудь текстовом редакторе автоматически поставить несколько косых черточек везде, где есть две пустые строки подряд, например (так обычно выделяют название книги и отдельные главы)?
Можно просто, в начале каждой пустой строки ставить слеш, найти: "^$" заменить на: "/". В notepad++, можно в режиме регулярных выражений, в том же демагоге я думаю можно, в любом который поддерживает регулярки. Если надо именно две идущие подряд строки, то как-то так; найти: "(^\r\n){2}" заменить на: "/\r\n/\r\n"
И еще момент, насчет сухих щелчков в итоговом файле ogg, от чего они зависят, от загруженности Яндекса? Вчера их было много, сегодня почти нет.
Возможно какие-то обновления накатывали, позавчера вечером очень плохо яндекс работал, это даже было видно по графику сетевой активности во время скачивания.
Положил оба словаря в папку Sys. Не могу изменить в UserLocal.txt произношение латинских цифр. Поставил с I=1 до XXX=30, но VIII произносится как вэтри, а с XI и до XXX ни одно число не произносится как указано после знака "=". Пробовал и маленькие, и большие буквы, и запись числа буквами - не помогает.
Тут я думаю дело, в сортировке записей, для латиницы порядок более важен чем для кириллицы. В локальном словаре записи остаются в таком виде, как вы их туда запишите. Там могут быть разные ситуации, где-то тире между цифрами, и.т.п. но общее правило такое, что например запись "VIII=8", должна идти в словаре раньше чем "III=3" и даже раньше чем "XXI=21", потому что VIII больше(в смысле длиннее). Если говорить коротко, то добавьте свой список в словарь "dicOMG.txt". Он сам пересортируется и более длинные записи будут стоять первыми. Добавляйте в большом регистре, как и пишутся римские цифры:
I=1
II=2
...
...
XXI=21
и.т.д.
Вообще для римских цифр и разных Людовиков, хорошо бы завести отдельный словарь и функцию для его применения, но в простых случаях как с главами и.т.п. должно работать и так, если будет правильная сортировка.
Если говорить коротко, то добавьте свой список в словарь "dicOMG.txt". Он сам пересортируется и более длинные записи будут стоять первыми. Добавляйте в большом регистре, как и пишутся римские цифры:
Еще раз благодарю, теперь римские цифры озвучиваются правильно.
Можно просто, в начале каждой пустой строки ставить слеш, найти: "^$" заменить на: "/". В notepad++, можно в режиме регулярных выражений.
Если надо именно две идущие подряд строки, то как-то так; найти: "(^\r\n){2}" заменить на: "/\r\n/\r\n"
Я скачал notepad++ и заменил пустые строки в нескольких книгах, но и в первом и во втором варианте аудиокнига обрабатывается на 50-95% и выходит ошибка. Без косых черт все книги обрабатываются без ошибок. Подскажите, пожалуйста, как это исправить.
Вот текст с косыми чертами, скриншот сообщения об ошибке, файл Data.txt и последний файл с ошибкой (из 47 корректно были созданы файлы 1-41, файлы 42-46 не были созданы).
Вот текст с косыми чертами, скриншот сообщения об ошибке, файл Data.txt и последний файл с ошибкой (из 47 корректно были созданы файлы 1-41, файлы 42-46 не были созданы).
Судя потому что ошибка в последнем файле, то это из-за последовательности косых черт после текста. Проскрольте текст до низа и просто удалите их. Или видоизменить регулярку, чтобы косые черты в конце не появлялитсь.
Найти: (.\r\n)(^\r\n){2,}(.)
Заменить: $1/\r\n/\r\n/\r\n$3
Она ищет две и больше пустых строк подряд(кроме начала и конца файла), и заменяет их на три косые черты. Так даже лучше, потому что в примере есть по пять и больше пустых строк подряд и с предыдущей регуляркой, паузы получались слишком долгими.
Yandex TTS
Добавлено: 27 ноя 2020 11:32
flegont
Я заметил, что символ - (минус) добавляет-таки небольшую паузу. Но от количества идущих подряд минусов пауза НЕ зависит.
Еще бОльшую паузу добавляет пустая строка. Но, опять же, от количества пустых строк подряд - пауза НЕ зависит. Проверено вручную на демо-сервисе Яндекса.
Сравните звучание текстов:
Ну, а / это вообще - универсальное средство.
Пауза выходит очень выразительная
Сам сервис Яндекса нормально воспринимает / в любом месте текста, и в конце тоже
Кмк лишние любой символ в первой группе и начало строки во второй
Найти: (\r\n)(\r\n){2,}(.)
Заменить: $1/\r\n/\r\n/\r\n$3
Плюс часто встречаются пустые строки содержащие пробелы. Возможно стоит рассмотреть:
Найти: (\r\n)(\s*\r\n){2,}(.)
Yandex TTS
Добавлено: 27 ноя 2020 12:10
GIS88
chibis, А можно, в программу добавить возможность автоматически делать паузы после трех звездочек и начала глав?
Я заметил, что символ - (минус) добавляет-таки небольшую паузу. Но от количества идущих подряд минусов пауза НЕ зависит.
Еще бОльшую паузу добавляет пустая строка. Но, опять же, от количества пустых строк подряд - пауза НЕ зависит. Проверено вручную на демо-сервисе Яндекса
Я для себя пришел к выводу, что длинную паузу несет в себе именно перевод строки. Но когда переводы следуют друг за другом подряд, то схлопываются в один, и паузы не суммируются. Поэтому для предотвращения схлопывания их нужно чередовать с каким-нибудь глухим символом. Точно подходят / { } - ` ' может еще какие-то. Главное чтоб был основной действующий компонент - перевод строки, без него эти символы не так эффективны. Роль символов вспомогательная дотащить до филиппа последовательность переводов строки в целости. Некоторые глухие символы не подходят, они экранируются слешем сразу в браузере перед отправкой, как спецсимволы(двойная кавычка). Косую черту я предложил просто, как более симпатично выглядящую в качестве отбивки текста.
Кстати сам перевод строки, как один символ на демо-старнице сразу заменяется на последовтальность из двух "/" и "n". Я из-за этого в play_5.hta тоже на всякий случай это добавил, раз демка так делат. При проведении экспериментов для чистоты, лучше посылать серверу строки напрямую тем же курлом или вгетом, чтобы хотя бы на этапе передачи они долетали как есть, неизмененными. Демо-страница перед отправкой обрабатывает их javascripto-м, поэтому эталоном произношения, правильнее считать непосредственно сервер, а не демку.
Кмк лишние любой символ в первой группе и начало строки во второй
Найти: (\r\n)(\r\n){2,}(.)
Заменить: $1/\r\n/\r\n/\r\n$3
Плюс часто встречаются пустые строки содержащие пробелы. Возможно стоит рассмотреть:
Найти: (\r\n)(\s*\r\n){2,}(.)
Точка впереди, это чтобы пауз в виде слешей небыло и в начале текста тоже. Чтобы на корню исключить возможность появления абзаца, и соответствующего ему файла представляющего из себя сплошную шекспировскую паузу. Яндекс это принимает, но ffmpeg подозрительно к такому файлу относится из-за его размера.
Или видоизменить регулярку, чтобы косые черты в конце не появлялитсь.
Найти: (.\r\n)(^\r\n){2,}(.)
Заменить: $1/\r\n/\r\n/\r\n$3
Она ищет две и больше пустых строк подряд(кроме начала и конца файла), и заменяет их на три косые черты. Так даже лучше, потому что в примере есть по пять и больше пустых строк подряд и с предыдущей регуляркой, паузы получались слишком долгими.
Я еще в начале ставлю 4 косые черты, т. к. это как раз время открытия винампа со всеми плагинами, чтобы первые слова книги не заглушались техническими звуками компьютера.
А как изменить эту формулу, чтобы ставились не 3, а 4 косые черты?
А как изменить эту формулу, чтобы ставились не 3, а 4 косые черты?
Добавить в поле замены еще одну комбинацию "/\r\n", чтоб их стало четыре: $1/\r\n/\r\n/\r\n/\r\n$3. Последовательность "/\r\n" - это один слеш с переносом строки.
Добавить в поле замены еще одну комбинацию "/\r\n", чтоб их стало четыре: $1/\r\n/\r\n/\r\n/\r\n$3. Последовательность "/\r\n" - это один слеш с переносом строки.
Решил записать книгу и опять ошибка:
Yandex TTS
Добавлено: 29 ноя 2020 11:56
andko
Другой текст, другая ошибка:
{"error_code":"BAD_REQUEST","error_message":"Error while parsing and validating request: Requested text length exceed limitation(5000): 5017"}
Кто подскажет что делать с такой аббревиатурой:
ИТУ
ИВС
УДО
Что только не делал Филлип не читает
Yandex TTS
Добавлено: 02 дек 2020 17:47
tonio_k
olelog, Поэкспериментируйте в этом направлении:
И-Т-Уу
И-В-эС
У-Д-Оо
Yandex TTS
Добавлено: 02 дек 2020 18:19
olelog
Вообще нет реакции никакой. Пробовал вставлять в разные словари и в user local и в dicOMG. Пробовал и с заглавной и с маленькой буквы, короче все варианты.
Все абривиатуры в нижний регистр, буквы как отдельные в произношении.
И обязательно ударение на последнию гласную
ИТУ=итэ+у
ИВС=ивэ+эс
УДО=уд+о
Левые части правил тоже в нижний регистр(для кириллицы).
иту=итэ+у
ивс=ивэ+эс
удо=уд+о
Правые части можно в любом регистре, тут надо ориентироваться на произношение яндексом.
Вообще нет реакции никакой. Пробовал вставлять в разные словари и в user local и в dicOMG. Пробовал и с заглавной и с маленькой буквы, короче все варианты.
Чтобы аббревиатуры добавленные в один из этих словарей сработали, левые части(кириллические) должны быть в нижнем регистре. А если использовать записи формата: $СТО=эстэ+о, то надо использовать предварительную обработку, другими словарями и сборками, которые работают в связке с этими словарями.
Yandex TTS
Добавлено: 03 дек 2020 16:27
olelog
Люди, вы просто внесите в словарь эти все варианты, и с верхними и нижними и "боковыми и левыми" создайте текстовой файл из аббревиатур загрузите в "yndx_tts64", запишите звуковой файл и убедитесь в том, что нет никакой реакции. Не знаю про какие словари дополнительные ведется речь, но со всеми тремя встроенными и предложенными словарями UserLocal , dicOMG , dicOMGaster в "yndx_tts64" данная схема не работает, во всяком случае для Филлипа. Может надо какой дополнительный словарь для аббревиатур, или какое дополнительное правило для этого ?
Yandex TTS
Добавлено: 03 дек 2020 18:02
chibis
Почему нет реакции? Вот отправил на таком тестовом файле, вполне нормально произносит:
Ув. chibis, у меня просьба по поводу словаря цифр для Филиппа. Нельзя ли составить такой, с общими правилами, как у словаря dicOMGaster? Я попробовал, у меня не получилось (особенно с римскими - вместо XXI век, получается 10101 век). Заранее благодарю!
Yandex TTS
Добавлено: 03 дек 2020 21:07
chibis
Я не очень понял, что значит общие правила для цифр, арабские вроде яндекс и сам по себе читает как текст, а с римскими в текущей сборке есть проблема, потому что латинские буквы в ней не считаются за буквы. Более менее это можно минимизировать сортировкой. Поэтому правила для них нужно помещать в dicOMG.txt, чтобы они сами сортировались. Если же их помещать в локальный словарь, то это нужно делать в порядке убывания длин. Вот файл со списком римских цифр от 1 до 99 отсортированных в таком порядке:
Я не очень понял, что значит общие правила для цифр, арабские вроде яндекс и сам по себе читает как текст
Ув. chibis. Спасибо, я скачал и на досуге проверю. А имел я ввиду что-то вроде словаря 10_REX_числа(chisla).rex 149 КБ для "Demagog-Yandex", но адаптированного под Филиппа.
Yandex TTS
Добавлено: 03 дек 2020 21:50
speeck
Господа, зачем изобретать велосипед, когда уже все сделано. Обработка книг Демагогом (сборка от ув. tonio_k), затем, в случае с НЕ Филиппом, запись там же, либо, в случае С Филиппом, сборкой ув. chibis на Play_5, либо его же скриптом для сборки Демагога (первый вариант).
Имхо самый удобный вариант, ибо заново изобретать словари, включая аббревиатуры, римские, омографы, сокращения и тд, это же мучения на много месяцев и лет....
Yandex TTS
Добавлено: 03 дек 2020 22:45
flegont
Лично я сразу "обнулил" все словари в сборке ув. chibis - исходя из предположения, что текст предварительно уже обработан средствами Демагога. Словарями *.rex и *.dic:
- убран мусор в тексте;
- раскрыты аббревиатуры;
- числа (как арабские, так и римские) заменены их словесными эквивалентами;
- проставлены (если необходимо) плюсики-ударения в омографах;
- и т. д. и т. п.
Словарей на такие случаи создано много и работа эта заняла у энтузиастов, в самом деле, годы. А если надо готовый словарь омографов перекроить, заменив ударения, сделанные большими буквами, на плюсики, то это - несложно. Одним регулярным выражением. Так сказать, стоим на плечах гигантов
Потом либо запускать Play_5.hta, либо... у меня и свой Lua-скрипт есть для обращения прямо из Демагога к главной фишке - утилите yndxfilipp.exe. В обоих случаях результат озвучки - вполне удовлетворительный
у меня и свой Lua-скрипт есть для обращения прямо из Демагога к главной фишке - утилите yndxfilipp.exe.
Ув. flegont. Видно, я пропустил эту версию Демагога с Филиппом. Не укажите ли ссылку на сборку?
Заранее благодарю!
Yandex TTS
Добавлено: 04 дек 2020 00:04
flegont
Я пока не публиковал этот вариант: связку Демагога со сборкой от ув. chibis.
Там, собственно, нынешняя версия 393 + небольшой Lua-скрипт.
Скрипт немножко допилю и выложу на днях.
...Видно, я пропустил эту версию Демагога с Филиппом. Не укажите ли ссылку на сборку?...
Выше, на этой странице, ув. chibis выложил сборку Demagog-Yandex от tonio_k со скриптом для голоса Филипп (в скрипте можно выбрать и др. голоса). Конкретно, смотрите здесь: http://i91650e3.beget.tech/viewtopic.php?f=55&t ... =600#p5000
Работает нормально, жаль только, что для Филиппа нет функции пакетного озвучивания. Например, это нужно для пакетной озвучки книг разбитых на главы – чтобы каждая глава шла отдельным файлом. По отдельности озвучивать каждую главу очень утомительно. Сборку от ув. flegont ждём с нетерпением.
жаль только, что для Филиппа нет функции пакетного озвучивания
Есть предыдущая сборка от tonio_k, где пакетная озвучка запускалась как-бы циклически, используя основной файл с обработкой. Вполне вероятно циклическую запись скрипта от chibis можно сделать на базе этого.
Возможно tonio_k скажет точнее?
Yandex TTS
Добавлено: 06 дек 2020 12:26
flegont
Вот комплект, с которым я экспериментирую. Demagog+yndx_tts64
Интерес был такой:
- можно ли вообще из Демагога запустить увесистую внешнюю утилиту?
- если да, то можно ли запускать ее в "чистом виде", только для доступа к речевому демо-сервису Яндекс? Предполагая, что отсылаемый текст - достаточно хорош. Например, уже был обработан в самом Демагоге некими словарями.
Ответ на оба вопроса: да.
► Показать
y1.jpg (175.78 КБ) 3248 просмотров
y2.jpg (104.82 КБ) 3248 просмотров
Скрипт PlayYandex.lua запускается в активном окне Демагога по комбинации Shift+Ctrl+F
(для примера, в окне 1 открыт файл "Нахалка.txt")
Папка yndx_tts64 находится внутри папки Demagog. В ней лишь одно отличие от оригинала - все словари там - пустые. Подразумевается, что тексты, отсылаемые на озвучку - будут (если надо) предварительно обрабатываться средствами Демагога. Какие именно словари поместить в папку Demagog\dic - на усмотрение экспериментатора. Я частенько обходился лишь регулярным выражением, обнаруживающем в тексте символы, отличающиеся от: русских букв, или пробелов, или обычных знаков препинания, включая двойные кавычки, книжные (елочки) а также скобки () [] {} Руками бывало легче поправить
Очень интересно наблюдать, как Filipp читает такие тексты. Сам довольно бойко разбирается с все/всё и многими другими омографами. Непривычно мало ошибок
Было бы интересно соорудить скрипт, автоматически разделяющий книгу а активном окне на главы и озвучивающег