neorumtu
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Garrett Цитата: fold разрывает предложения. starichok Цитата: Можно подробнее или на примере... А то суть вопроса не совсем понятна. | Я скармливаю текст онлайн text to speech сервису в пакетном режиме. Для создания аудиокниг (художественный текст). Не в LibreOffice, просто, я думал он поможет. Каждая строка (т.е. текст от одного переноса строки до следующего переноса строки) в одном запросе. Но у сервиса есть ограничение на количество символов в запросе. Так что даже одна строка может оказаться слишком длинной. И надо вставить дополнительный перенос строки, но не разрывая предложения. Потому что онлайн сервис оперирует строками и они должны быть целостными, иначе это будет потом неестественно звучать (mp3 от сервиса потом склеиваю). Балаболка делает это при онлайн запросах. Цитата: Если длина строки превысила 413 символов, то после предыдущего слова должен ставиться символ конца строки | Цитата: Если я верно понял, то переносить по завершению фразы Логику такого парсера можно написать, но он должен будет включать механизм синтаксического разбора, и уж точно простым не выйдет. | Нет, не так. Но и ничего сложного, просто не совсем тривиально. Если 413 символов превышено, откатываться влево до ближайшей точки и туда вставить перенос строки (убрав также лишний пробел после точки). Я же сразу сказал, чтобы предложения не разрывались. Предложения это как правило текст от точки до точки. Ну, если не учитывать разделители ? и ! Может быть ещё, правда, случай, когда с начала строки до ближайшей точки больше 413 символов (столько длинные предложения). Их надо разбивать по другому, по запятым хотя бы (после ближайшей запятой слева). Но я с такими предложениями не сталкивался. И думаю, это неактуально. Добавлено: Это уже тянет на программу для искусственного интеллекта. Он мне, кстати, подсказал питон скриптик: Подробнее... Но что-то всё равно не всё фиксит, (а также фиксит почему-то там, где можно без этого обойтись). Приходится остатки сокращать самому. Есть ещё вариант вставить перенос строки после каждой точки (в некоторых случаях я такое применяю). Но это не очень хорошо. TTS создает лишние паузы там и больше запросов приходится делать. Всё-таки перенос строки тоже ведь не просто так в книгах ставится. То, что в нём, объеденено по смыслу, например, речь одного человека. | Всего записей: 535 | Зарегистр. 30-08-2023 | Отправлено: 03:53 16-04-2024 | Исправлено: neorumtu, 04:12 16-04-2024 |
|