Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Обрезать непроблемма,сложно выловить тот ролик куда яндекс плюнул свою метку. Когда отправляешь несколько текстов, что бы потом склеить в одно длинное. Не во все роики он вставляет. Бывает два перых чисто потм с 3 го вставляет сою метку. бывает с 4, тоесть как то рандомно. и вставляет то в конце ролика то в начале.
В таком случае да, сложновато будет.
Но думаю можно это обойти. Там конвертация аудио происходит в массив байтов. Нужно вот вычислить озвучку от Яндекса и сохранить эти байты.
Потом делать проверку на наличие этих байтов, если есть, то удалять их... Думаю должно сработать, я бы попробовал так. Но на практике не знаю как будет это работать.
В таком случае да, сложновато будет.
Но думаю можно это обойти. Там конвертация аудио происходит в массив байтов. Нужно вот вычислить озвучку от Яндекса и сохранить эти байты.
Потом делать проверку на наличие этих байтов, если есть, то удалять их... Думаю должно сработать, я бы попробовал так. Но на практике не знаю как будет это работать.
В коде есть этот код, где получаем массив байтов. Вот с ним нужно возиться,
как вариант можно сохранять этот массив в файл, а потом там редактировать..
Т.е. нужно:
Делать одну и туже озвучку несколько раз, до появления вставки от яндекс и сохранять массив байтов в разные файлы.
Затем эти файлы сравнить между собой, разница и будет вставка от яндекс, вот этот "кусок" нужно будет запомнить и сделать условие на проверку содержания этого "куска", и если есть - то удалять его.
В коде есть этот код, где получаем массив байтов. Вот с ним нужно возиться,
как вариант можно сохранять этот массив в файл, а потом там редактировать..
Т.е. нужно:
Делать одну и туже озвучку несколько раз, до появления вставки от яндекс и сохранять массив байтов в разные файлы.
Затем эти файлы сравнить между собой, разница и будет вставка от яндекс, вот этот "кусок" нужно будет запомнить и сделать условие на проверку содержания этого "куска", и если есть - то удалять его.
Спасибо за шаблон.
У всех работает шаблон через прокси?
Мне выдаёт ошибку:
Выполнение действия CSharp OwnCode: Yandex SpeechKit Демо v2. Получен пустой ответ от HTTP-сервера 'cloud.yandex.ru'.
Пробовал разные прокси, в том числе мобильные.
Спасибо за шаблон!
Немного под свои нужны пвытаюсь его подправить, но не получается изза ошибки. Прошу помощи, уже сломал всю голову что не так в коде C#^
Спасибо за шаблон!
Немного под свои нужны пвытаюсь его подправить, но не получается изза ошибки. Прошу помощи, уже сломал всю голову что не так в коде C#^
Спасибо! Все заработало как надо!
Суть задачи такая - при массовой обработки текста, сохранение почему то происходило не в той же последовательности по сравнению с текстовыми файлами, была перемешка. По этому переделал шаблон для того чтобы брался оотдельно каждый файл и обрабатывался. В дальнейшем уже будет маячек, по которому можно обрабатывать и текст и иметь соответствующий аудио файл.
Здравствуйте!
Спасибо вам за шаблон!
Не могли бы вы подсказать по такой ситуации.
Если озвучивать длинный текст, то полученный файл при проигрывании имеет полную длину (т.е. обработан весь текст). Но при этом длина файла: в видеоредакторах и проигрывателях определяется неправильно (т.е. время проигрывания последнего озвученного файла 06:27 http://joxi.ru/82Q49nvcVxWlym , а на шкале видеоредактора и конвертера 03:15 http://joxi.ru/5mdnLbeUazLNJAhttp://joxi.ru/52ae6jVSgzq8W2 ).
А в свойствах файла, его продолжительность и вовсе неизвестна http://joxi.ru/zANB9RvU890EnA
Как можно решить эту проблему?
Своих мозгов к сожалению не хватило (
Здравствуйте!
Спасибо вам за шаблон!
Не могли бы вы подсказать по такой ситуации.
Если озвучивать длинный текст, то полученный файл при проигрывании имеет полную длину (т.е. обработан весь текст). Но при этом длина файла: в видеоредакторах и проигрывателях определяется неправильно (т.е. время проигрывания последнего озвученного файла 06:27 http://joxi.ru/82Q49nvcVxWlym , а на шкале видеоредактора и конвертера 03:15 http://joxi.ru/5mdnLbeUazLNJAhttp://joxi.ru/52ae6jVSgzq8W2 ).
А в свойствах файла, его продолжительность и вовсе неизвестна http://joxi.ru/zANB9RvU890EnA
Как можно решить эту проблему?
Своих мозгов к сожалению не хватило (
Здравствуйте!
После конвертации звучит вторая половина текста. Как будто при конвертации файл перезаписывается.
Вот тут на облако загрузил текст на котором сейчас пробовал, оригинал озвучки ogg, и результат конвертации mp3 https://cloud.mail.ru/public/R21r/KkgY9Y88T
Здравствуйте!
После конвертации звучит вторая половина текста. Как будто при конвертации файл перезаписывается.
Вот тут на облако загрузил текст на котором сейчас пробовал, оригинал озвучки ogg, и результат конвертации mp3 https://cloud.mail.ru/public/R21r/KkgY9Y88T
Здравствуйте прошу подскажите, вот я ввожу текст больше 500 символов для Yandex demo v2, а он выдает ошибку 400.
Если ввыдить текст до 500 символов, то вроде все сохраняется в аудиоформате + реклама яндекса иногд авставляется ааудио, ПОдскажите пожалуйста как то можно это обойти: может тип автоматически делить длинный текст на кусочки по 500, озвучивать последовательно а затем, все эти кусочки сшивать в единый аудифоайл.
ЧТо нужно в коде поменять дополнительно и можете ли вы это сделать? иль кто может даст API платный ключ Yandex speechkit?) озвучка яндекса самая приятная, мне для образовательных целей
Здравствуйте прошу подскажите, вот я ввожу текст больше 500 символов для Yandex demo v2, а он выдает ошибку 400.
Если ввыдить текст до 500 символов, то вроде все сохраняется в аудиоформате + реклама яндекса иногд авставляется ааудио, ПОдскажите пожалуйста как то можно это обойти: может тип автоматически делить длинный текст на кусочки по 500, озвучивать последовательно а затем, все эти кусочки сшивать в единый аудифоайл.
ЧТо нужно в коде поменять дополнительно и можете ли вы это сделать? иль кто может даст API платный ключ Yandex speechkit?) озвучка яндекса самая приятная, мне для образовательных целей
Доброго времени! Да можете разделить длинный текст на необходимое кол-во символов, а затем склеить все это например с помощью ffmpeg, или можете посмотреть как реализовано деление в кубике с API.
По поводу платного ключа API вряд ли кто-то вам его даст. Почему сами не создадите его? Не знаю как сейчас, но раньше при создании API ключа давали пробный период на 2 месяца.
Хорошая реализация, но есть проблема при обработке с помощью прокси. Возвращает ошибку. Немного посмотрел код, ошибка появляется в момент парсинга token, приходит пустое значение.
А пустое значение там, потому что ответ приходит в таком виде
Чтобы можно было спарсить вот этот токен <meta name="csrf-token" content="e72a2d6e3a0b9b226bc7cc1c56836d8f427aa54b:1653468912"/>.
Я глубоко не искал, но похоже есть проблема с преобразованием вида прокси из стандартного для zenno в вид для xnet. Прокси рабочие, на обычном get-запросе отрабатывают правильно. Ну и странно конечно, что приходят символы вида
content="Яндекс"> .
<meta data-react-helmet="true" property="og:description" content="Найдётся всё">.
Скорее всего просто кодировка слетела и надо добавить что-то типа request.CharacterSet = Encoding.GetEncoding("utf-8");
Но без прокси отрабатывает нормально.
Возможно в директивах using есть какая-то ошибка, связанная с
/// <summary>
/// Класс для прокси
/// </summary>
public class Proxys
Делал себе подобный проект, только на Leaf.xNet, там тоже работает хорошо, но я сразу указывал формат прокси в виде ip:port:login:password.
Вдруг кому-то пригодится, выше видел, что писали про эту ошибку.
p.s. Сменил кодировку ради интереса, действительно выдает - Нам очень жаль, но запросы с вашего устройства похожи на автоматические. Но через обычный гет-запрос из зеннопостера опять же работает. Странно это всё И через Leaf.Xnet тоже работает.
p.p.s. Вобщем ради интереса еще поковырял этот xNet, видимо да, кривая библиотека, на форумах тоже про неё много нехорошего пишут, пользуйтесь Leaf.Xnet кому нужно. Самый простой способ проверить кривизну, это запустить код на 2ip ru. Там будет понятно работает ли прокси или нет. Вобщем вопрос можно закрывать Кому нужно просто вместо xNet добавьте в Externals и в ссылки из GAC Leaf.xNet. Удалите везде xNet, чтобы не было конфликтов. Ну и немного код подправьте, например вместо request.Proxy = ProxyClient.Parse(ProxyType.Http..., нужно прописать request.Proxy = ProxyClient.Parse(ProxyType.HTTP.
Ну и еще по мелочи, смотря что вам нужно, например тот же трим и парсинг token можно и стандартными экшенами делать, чтобы потом не искать где ошибка в коде. Да вобщем то и get и post запрос тоже можно стандартными экшенами сделать ))
Кстати еще ошибка 400 может возникать у тех, кто использует голос Оксана, она больше не поддерживается.
Голоса oksana и alena созданы на основе записей одного диктора. Голос oksana больше не представлен в списке поддерживаемых голосов, однако он доступен для старых проектов. Для новых проектов используйте поддерживаемые голоса.
Хорошая реализация, но есть проблема при обработке с помощью прокси. Возвращает ошибку. Немного посмотрел код, ошибка появляется в момент парсинга token, приходит пустое значение.
А пустое значение там, потому что ответ приходит в таком виде
Чтобы можно было спарсить вот этот токен <meta name="csrf-token" content="e72a2d6e3a0b9b226bc7cc1c56836d8f427aa54b:1653468912"/>.
Я глубоко не искал, но похоже есть проблема с преобразованием вида прокси из стандартного для zenno в вид для xnet. Прокси рабочие, на обычном get-запросе отрабатывают правильно. Ну и странно конечно, что приходят символы вида
content="Яндекс"> .
<meta data-react-helmet="true" property="og:description" content="Найдётся всё">.
Скорее всего просто кодировка слетела и надо добавить что-то типа request.CharacterSet = Encoding.GetEncoding("utf-8");
Но без прокси отрабатывает нормально.
Возможно в директивах using есть какая-то ошибка, связанная с
/// <summary>
/// Класс для прокси
/// </summary>
public class Proxys
Делал себе подобный проект, только на Leaf.xNet, там тоже работает хорошо, но я сразу указывал формат прокси в виде ip:port:login:password.
Вдруг кому-то пригодится, выше видел, что писали про эту ошибку.
p.s. Сменил кодировку ради интереса, действительно выдает - Нам очень жаль, но запросы с вашего устройства похожи на автоматические. Но через обычный гет-запрос из зеннопостера опять же работает. Странно это всё И через Leaf.Xnet тоже работает.
p.p.s. Вобщем ради интереса еще поковырял этот xNet, видимо да, кривая библиотека, на форумах тоже про неё много нехорошего пишут, пользуйтесь Leaf.Xnet кому нужно. Самый простой способ проверить кривизну, это запустить код на 2ip ru. Там будет понятно работает ли прокси или нет. Вобщем вопрос можно закрывать Кому нужно просто вместо xNet добавьте в Externals и в ссылки из GAC Leaf.xNet. Удалите везде xNet, чтобы не было конфликтов. Ну и немного код подправьте, например вместо request.Proxy = ProxyClient.Parse(ProxyType.Http..., нужно прописать request.Proxy = ProxyClient.Parse(ProxyType.HTTP.
Ну и еще по мелочи, смотря что вам нужно, например тот же трим и парсинг token можно и стандартными экшенами делать, чтобы потом не искать где ошибка в коде. Да вобщем то и get и post запрос тоже можно стандартными экшенами сделать ))
Когда писал этот шаблон, тестировал с прокси, вроде все норм было. Сейчас, возможно, уже что-то поменялось...
Ну и да xNet - уже сильно устарел, сейчас я бы его уже не использовал...
Кстати, если кто-то занимается генерацией подобных видео, было бы интересно узнать , каким способом вы ловите фразы от яндекса типа - видео сгенерировано с помощью Яндекс спич кит и там еще есть несколько подобных фраз. Я делаю каждый звуковой файл около 300 символов, это примерно 7-8 секунд, затем измеряю его длину в миллисекундах и делаю в этом месте слайд с помощью ffmpeg (там есть возможность вставлять по миллисекундам изображение в нужном месте). Поэтому мне в этом плане демо версия идеально подходит, чтобы знать где и какое изображение при генерации видео должно быть.
Я пробовал переводить аудио файлы в редактируемый вид, но всё равно не смог подобрать нужный кусок, чтобы потом как-то с ним работать. Пробовал считать количество слов и символов, а потом считать общую длину аудио в миллисекундах. Получалось более или менее , но иногда были сбои. Но в принципе можно вычислить среднестатистическое количество символов и длину аудио. Потом делить длину аудио на количество символов и если значение отклоняется от нормы, тогда высока вероятность, что добавлен текст от яндекса.
В итоге сейчас использую вариант с генерацией видео на прокси. Делаю запрос от первого прокси, потом от второго и если длина отличается, значит добавлен текст. Но можно попробовать и с одного прокси например 3 раза подряд сгенерировать аудио и брать самое короткое. 3 раза подряд яндекс не накладывает свою рекламу. Потом берем следующий текст и новую прокси.
Будет интересно, если кто-то поделится более стабильным вариантом.
Кстати, если кто-то занимается генерацией подобных видео, было бы интересно узнать , каким способом вы ловите фразы от яндекса типа - видео сгенерировано с помощью Яндекс спич кит и там еще есть несколько подобных фраз. Я делаю каждый звуковой файл около 300 символов, это примерно 7-8 секунд, затем измеряю его длину в миллисекундах и делаю в этом месте слайд с помощью ffmpeg (там есть возможность вставлять по миллисекундам изображение в нужном месте). Поэтому мне в этом плане демо версия идеально подходит, чтобы знать где и какое изображение при генерации видео должно быть.
Я пробовал переводить аудио файлы в редактируемый вид, но всё равно не смог подобрать нужный кусок, чтобы потом как-то с ним работать. Пробовал считать количество слов и символов, а потом считать общую длину аудио в миллисекундах. Получалось более или менее , но иногда были сбои. Но в принципе можно вычислить среднестатистическое количество символов и длину аудио. Потом делить длину аудио на количество символов и если значение отклоняется от нормы, тогда высока вероятность, что добавлен текст от яндекса.
В итоге сейчас использую вариант с генерацией видео на прокси. Делаю запрос от первого прокси, потом от второго и если длина отличается, значит добавлен текст. Но можно попробовать и с одного прокси например 3 раза подряд сгенерировать аудио и брать самое короткое. 3 раза подряд яндекс не накладывает свою рекламу. Потом берем следующий текст и новую прокси.
Будет интересно, если кто-то поделится более стабильным вариантом.
То же делаю несколько озвучек и выбираю самую короткую, но было бы интересно найти какое-то менее замороченное решение вопроса (кроме покупки токена для спичкита конечно же )
Приветствую! Спасибо огромное за шаблон, адаптировал под свои нужды. Только никак не могу найти кряк под Speechtogo по сети. Видел, что автор писал, что у него есть, но не могу почему-то тут в личку писать
Всем привет. Вопрос не совсем в тему, но тоже интересно: У меня стоит задача — подбирать максимально точные ответы на вопросы пользователей, с помощью программы. ТС, какую нейронную сеть порекомендуете для этого?
Всем привет. Вопрос не совсем в тему, но тоже интересно: У меня стоит задача — подбирать максимально точные ответы на вопросы пользователей, с помощью программы. ТС, какую нейронную сеть порекомендуете для этого?
Привет, с нейро сетью особо не работал, поэтому тут не могу подсказать. Но в свое время для подобной задачи использовал Dialogflow от гугла. Уверен что есть более интересные инструменты для этого, либо писать самому нейросеть)
Если найдешь что-то интересное, дай знать.