Свежие публикации

Здесь собраны все публикуемые пикабушниками посты без отбора. Самые интересные попадут в Горячее.

06 Августа 2023

Ответ на пост «Методы чистки зубов. Чистим зубы правильно. Часть 1»

Уважаемый коллега, я всё понимаю, у вас непреодолимое желание заявить о себе на Пикабу, но делайте это, пожалуйста, менее топорно. Не поленитесь сделать обращение к читателям своими словами, а не просто слизывая это всё у меня. И да, тег "моё" ставится если контент рождался у вас в муках, а не копипастился сначала из чужой научной публикации, а потом у другого автора.

Ответ на пост «Методы чистки зубов. Чистим зубы правильно. Часть 1» Стоматология, Чистка зубов, Медицина, Здоровье, Рот, Зубная щетка, Гигиена, Гигиена полости рта, Длиннопост, Плагиат, Баянометр, Подделка, Списывание, Ответ на пост, Эмоции
Ответ на пост «Методы чистки зубов. Чистим зубы правильно. Часть 1» Стоматология, Чистка зубов, Медицина, Здоровье, Рот, Зубная щетка, Гигиена, Гигиена полости рта, Длиннопост, Плагиат, Баянометр, Подделка, Списывание, Ответ на пост, Эмоции
Показать полностью 2

Просьба... Нет, требование...

Если вы, нехорошие редиски, курите на балконе, не бросайте бычки вниз. ХобарИте их в банку. Сейчас жара, у меня в квартире нараспашку окна и лоджия. Сегодня нашёл бычок на лоджии, рядом с лежанкой для котиков. Он обгорел до нуля и поплавил линолеум. Какая то редиска кинула бычок сверху, а у нас берёзы высокие под окном. Бычок в итоге, отлетев от веток, упал ко мне не лоджию, где догорел.
Вы, дебилы конченные, даже не задумываетесь о том, что при пожаре на 3-м моём этаже, я эвакуируюсь, а вы, живущие на верху можете задохнуться в своих квартирах, и сгореть нахуй, если мы снизу загоримся. Огонь, сука такой, снизу вверх идёт!
Вам пох на меня, так подумайте, мрази, о себе и своих детях. Нахуй мне залитые пожарными потолоки и эти ваши ебучие похороны в парадной!

Еле сдержался от матов, блять!!!

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

PREDATHOR

PREDATHOR Фильмы, Хищник (фильм), 80-е
Показать полностью 1

Уроки мыловарения от метелицы или как выглядят текстуры на высоких в 2к23 (на примере Diablo IV)

Недавно добрались руки до долгожданной Диабло 4. Не успел я нарадоваться, как вдруг по мере прохождения сюжета начал натыкаться на спонтанные low res текстуры. Настройки игры стоят на высоких, разрешение экрана 2к.

Уроки мыловарения от метелицы или как выглядят текстуры на высоких в 2к23 (на примере Diablo IV) Компьютерные игры, Diablo IV, Diablo, Blizzard, Мыло, Мыловарение, Текстуры, Графика, Боль, Геймеры, Вырвиглаз, Длиннопост

Сначала подумал, что может быть Nvidia DLSS таким образом как-то "хитрит", но даже с выключенной настройкой такие эпизоды повторялись. Железной деве тоже не поздоровилось:

Уроки мыловарения от метелицы или как выглядят текстуры на высоких в 2к23 (на примере Diablo IV) Компьютерные игры, Diablo IV, Diablo, Blizzard, Мыло, Мыловарение, Текстуры, Графика, Боль, Геймеры, Вырвиглаз, Длиннопост

Оказывается, вот это вот безобразие лечится установкой текстур на "Ультра". Если такой опции у вас нет, значит вы забыли скачать дополнительный пак с high res текстурами во время установки игры. Благо их можно всегда докачать в настройках приложения Battle.net, но и накопителю поплохеет аж на 40 ГБ.

Снизу для сравнения пример одной и той же локации на высоких и ультра настройках текстур:

Уроки мыловарения от метелицы или как выглядят текстуры на высоких в 2к23 (на примере Diablo IV) Компьютерные игры, Diablo IV, Diablo, Blizzard, Мыло, Мыловарение, Текстуры, Графика, Боль, Геймеры, Вырвиглаз, Длиннопост
Уроки мыловарения от метелицы или как выглядят текстуры на высоких в 2к23 (на примере Diablo IV) Компьютерные игры, Diablo IV, Diablo, Blizzard, Мыло, Мыловарение, Текстуры, Графика, Боль, Геймеры, Вырвиглаз, Длиннопост

High VS Ultra. Особенно хорошо видно разницу на напольной мозаике:

Уроки мыловарения от метелицы или как выглядят текстуры на высоких в 2к23 (на примере Diablo IV) Компьютерные игры, Diablo IV, Diablo, Blizzard, Мыло, Мыловарение, Текстуры, Графика, Боль, Геймеры, Вырвиглаз, Длиннопост
Уроки мыловарения от метелицы или как выглядят текстуры на высоких в 2к23 (на примере Diablo IV) Компьютерные игры, Diablo IV, Diablo, Blizzard, Мыло, Мыловарение, Текстуры, Графика, Боль, Геймеры, Вырвиглаз, Длиннопост

Как можете видеть разница колоссальна! На моей памяти ни в одной игре не было такого резкого рывка детализации при переходе с высоких на ультра.

Сами Blizzard советуют запастись 32 ГБ памяти (не уточняется какой именно) для установки ультра текстур в разрешении 4К. Звучит сомнительно, но видеопамяти, действительно, должно быть не меньше 8-12 ГБ. А для тех, у кого столько нет - DLSS в помощь (наверное).

Что тут можно сказать? О времена! О нравы!

Показать полностью 5

Ответ на пост «Про уставших мам»

Ок, а с заебавшимся отцом чего делать? Когда он единственный источник дохода? Ходишь на убиващую тебя работу, чтобы было чего пожрать и где пожить, в выходные, точнее хоть половину сб, организм требует сна за прошедшую неделю, но нет - на тебя уже столько планов, сколько часов в сутках не бывает. Попрактиковать такое пару раз и здрасть больняк, но хер там плавал - он стоит копейки и хирург тебя досрочно не выпускает. После возникает вопрос - какую статью расходов уменьшить: съём жилья, ипотека или еда... На пару-тройку недель урока жене хватает, но потом снова начинается недовольство и всё по кругу. Сразу оговорюсь: декретных нет, халявного жилья нет, здоровья нет (в полушаге от инвалидности), детей трое (двойня внеплановая), работа именно такая (конкретнее - хороший деанон), увлечения канули в Лету, развитие тоже, зп выше среднего и дотаций нет (мы ведь белые и зп полностью чистая)

Использование речевых технологий Яндекса на примере аудиосообщений Telegram или чат-бот для распознавания аудиосообщений

В данной статье мы рассмотрим применение речевых технологий, предоставленных компанией Яндекс в контексте распознавания аудиосообщений в Telegram – популярном мессенджере, объединяющем миллионы пользователей по всему миру.

Использование речевых технологий Яндекса на примере аудиосообщений Telegram или чат-бот для распознавания аудиосообщений Python, Программирование, Чат-бот, IT, Гайд, Яндекс, Длиннопост

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

Использование речевых технологий Яндекса на примере аудиосообщений Telegram или чат-бот для распознавания аудиосообщений Python, Программирование, Чат-бот, IT, Гайд, Яндекс, Длиннопост

Данный функционал нам великодушно и альтруистично (почти) предоставила компания Яндекс на их сервисе Яндекс.Облако (Yandex.Cloud). На первый взгляд, название может напоминать о неком облачном хранилище для бесконечных потоков фотографий с телефона, но на самом деле все куда интереснее:

Яндекс.Облако - это сервис облачных вычислений, предоставляемый компанией Яндекс. Он позволяет людям и компаниям арендовать виртуальные серверы и ресурсы для хранения данных, запуска приложений и выполнения вычислений через интернет. Это как аренда виртуального пространства на компьютерах компании Яндекс, чтобы использовать их мощности для своих целей без необходимости покупки и поддержки собственного оборудования.

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

Использование речевых технологий Яндекса на примере аудиосообщений Telegram или чат-бот для распознавания аудиосообщений Python, Программирование, Чат-бот, IT, Гайд, Яндекс, Длиннопост

Да, каждый сервис платный, но их стоимость, в большинстве решений, не столь высока, да и Яндекс предоставляет тестовый период и грант для новых пользователей. Подробные условия их получения можно посмотреть здесь и здесь. Говоря кратко - если вы только зарегистрировались в Яндекс.Облаке, то нате 2 месяца бесплатного доступа, чтобы все затестить.

Театр начинается с вешалки

Переходим на Яндекс.Облако, авторизируемся и попадаем в консоль. После чего сразу создаем здесь платежный аккаунт. Если вы вошли сюда в первый раз, то получаем пробный период/грант или не заморачиваемся и пополняем счет на пару десятков рублей, привязав банковскую карту.

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

Для этого переходим на данную вкладку:

Использование речевых технологий Яндекса на примере аудиосообщений Telegram или чат-бот для распознавания аудиосообщений Python, Программирование, Чат-бот, IT, Гайд, Яндекс, Длиннопост

Далее в данном разделе жмем на кнопку "Создать сервисный аккаунт". Вводим название и выбираем роль. В данном примере мы будем использовать функционал по распознавания аудио - Speech-To-Text (STT), поэтому в качестве роли выберем "ai.speechkit-stt.user".

Использование речевых технологий Яндекса на примере аудиосообщений Telegram или чат-бот для распознавания аудиосообщений Python, Программирование, Чат-бот, IT, Гайд, Яндекс, Длиннопост

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

Использование речевых технологий Яндекса на примере аудиосообщений Telegram или чат-бот для распознавания аудиосообщений Python, Программирование, Чат-бот, IT, Гайд, Яндекс, Длиннопост

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

Заключаем сделку с BotFather

Чтобы затестить функционал сервиса давайте соберем простейшего чат-бота для Telegram, который будет расшифровывать аудиосообщения и присылать нам текст.

Для начала пойдем к BotFather и, склонив колено, попросим токен для нового чат-бота:

  1. Запускаем бота BotFather

  2. Вызываем команду /newbot

  3. Вводим название для нового бота

  4. Вводим его username

  5. Получаем токен

Использование речевых технологий Яндекса на примере аудиосообщений Telegram или чат-бот для распознавания аудиосообщений Python, Программирование, Чат-бот, IT, Гайд, Яндекс, Длиннопост

Теперь перейдем к основной части представления и начнем писать код чат-бота.

Тык тык тык делаю по клавишам

Для создания чат-бота воспользуемся библиотекой telebot (или pyTelegramBotAPI), которую установим таким образом:

pip install pyTelegramBotAPI

Сперва создадим файл "config.py", где будем хранить все полученные ключи и экземпляр класса TeleBot (импортированный из библиотеки telebot), с помощью которого будут происходить все взаимодействия с чат-ботом. В конструктор данного класса передаем лишь только токен, который мы до этого получили и сохранили в переменную BOT_TOKEN.

from telebot import TeleBot

# Токен чат-бота

BOT_TOKEN = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

# Экземпляр класса TeleBot, через который будет происходить все взаимодействия

# с ботом

bot = TeleBot(BOT_TOKEN)

# API-ключ сервисного аккаунта из Yandex.Cloud

YC_STT_API_KEY = 'YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY'

Заменяем значения переменных BOT_TOKEN и YC_STT_API_KEY на свой токен и API-ключ соответственно. Далее создаем файл "main.py", где будет располагаться функционал самого чат-бота. В начале определим все импорты:

from config import bot

from telebot.types import Message

Здесь мы импортировали объект класса TeleBot из раннее созданного "config.py" и класс Message из подмодуля types библиотеки. Данный класс представляет собой сообщение, отправленное в чат и содержит всю исчерпывающую информацию о нем.

Первое, что должен уметь чат-бот - это реагировать на команду /start, которая как раз и вызывается при запуске бота:

# Используем декоратор из объекта класса TeleBot,

# в который передаем параметр commands - список команд,

# при вызове которых будет вызываться данная функция @bot.message_handler(commands=['start'])

# Определяем функцию для обработки команды /start, она принимает объект класса

# Message - сообщение

def start(message:Message):

# Отправляем новое сообщение, указав ID чата с пользователем и сам текст сообщения

bot.send_message(message.chat.id, "Йоу! Отправь мне аудиосообщение")

Здесь мы использовали декоратор из объекта bot, который даст нашей программе знать, что вот эту функцию start нужно вызывать только тогда, когда пользователь ввел команду /start.

Самая функция принимает лишь один аргумент - это экземпляр класса Message, то есть, в данном случае, это будет то самое сообщение с командой /start, которую юзер отправил сам или просто нажал "Запустить", войдя первый раз в нашего бота. В последнем случае она будет отправлена за него боту автоматически.

message_handler - это декоратор из библиотеки telebot, предназначенный для обработки входящих сообщений в чат-боте. Он позволяет задать функцию, которая будет вызываться автоматически, когда бот получает сообщение определенного типа или удовлетворяющее определенным условиям.

В самом конце файла размещаем следующий код, который запустит бот при запуске "main.py":

if __name__ == "__main__":

bot.polling(non_stop=True)

Итак, теперь наш бот реагирует на его запуск пользователем и выпрашивает аудиосообщение:

Использование речевых технологий Яндекса на примере аудиосообщений Telegram или чат-бот для распознавания аудиосообщений Python, Программирование, Чат-бот, IT, Гайд, Яндекс, Длиннопост

Раз уж просит, то давайте дадим ему такую возможность и напишем еще одну функцию которая будет реагировать на отправку голосового сообщения:

Сперва определим функцию с другим декоратором, который будет реагировать уже не на команду, а тип сообщения - а именно голосовое:

@bot.message_handler(content_types=['voice'])

def handle_voice(message:Message):

Давайте импортируем еще один класс из библиотеки, который будет представлять аудиосообщение:

from telebot.types import Voice

Теперь внутри функции нам нужно получить отправленное/пересланное аудиосообщение. Так как оно уже хранится на серверах Telegram, то мы можем просто получить путь к нему.

# Определяем объект класса Voice, который находится внутри параметра message

# (он же объект класса Message)

voice:Voice = message.voice

# Получаем из него ID файла аудиосообщения

file_id = voice.file_id # Получаем всю информацию о данном файле

voice_file = bot.get_file(file_id)

# А уже из нее достаем путь к файлу на сервере Телеграм в директории

# с файлами нашего бота

voice_path = voice_file.file_path

В данном случае переменная voice_path будет храниться в себе относительный путь к аудиофайлу, например: "voice/file_0.oga". То есть, есть сервер Telegram, а в нем директория со всеми файлами нашего бота - там есть папка voice где и лежит присланное аудиосообщение.

OGA - это расширение файла аудио, используемое на серверах Telegram. Этот формат, известный как Ogg Vorbis, обеспечивает хорошее качество звука и небольшие размеры файлов, что позволяет передавать голосовые сообщения в мессенджере с высокой четкостью и экономией трафика.

Однако, толку от такого пути для нас никакого. Давайте применим немного хитрости и получим абсолютный путь к сохраненному аудиосообщению. Для этого нам понадобится токен бота, который мы сохранили в "config.py":

from config import BOT_TOKEN

И относительный путь файла, хранящийся в переменной voice_path:

file_base_url = f"https://api.telegram.org/file/bot{BOT_TOKEN}/{voice_path}"

Таким образом мы получим абсолютный путь к аудиофайлу на сервере Telegram вида:

https://api.telegram.org/file/botXXXXXXXXXXXXXXXXXXXXXXXXXXX...

Теперь у нас есть ссылка на аудиофайл и мы можем отправить ее Яндекс.Облаку, который попытается получить из данного аудиофайла текст.

Путешествие аудиосообщения

Создаем еще один файл, где мы будем взаимодействовать с сервисом Yandex.Cloud. Назовем его, к примеру "yandex_cloud.py". Мы могли бы использовать какие-нибудь готовые библиотеки для данной задачи, но для такого простого функционала легче написать взаимодействие при помощи классического модуля requests. Импортируем его и API-ключ от Яндекс.Облака из конфига:

import requests

from config import YC_STT_API_KEY

Определим переменную с адресом, на который будет идти запрос:

# URL для отправки аудиофайла на распознавание

STT_URL = 'https://stt.api.cloud.yandex.net/speech/v1/stt:recognize'

И создаем функцию, которая будет принимать в качестве аргумента адрес аудиофайла на серверах Telegram и возвращать распознанный из него текст:

def get_text_from_speech(file_url):

# Выполняем GET-запрос по ссылке на аудиофайл

response = requests.get(file_url)

# Если запрос к серверу Telegram не удался...

if response.status_code != 200:

return None

# Получаем из ответа запроса наш аудиофайл

audio_data = response.content

# Создам заголовок с API-ключом для Яндекс.Облака, который пошлем в запросе

headers = { 'Authorization': f'Api-Key {YC_STT_API_KEY}' }

# Отправляем POST-запрос на сервер Яндекс, который занимается расшифровкой

# аудио, передав его URL, заголовок и сам файл аудиосообщения

response = requests.post(STT_URL, headers=headers, data=audio_data)

# Если запрос к Яндекс.Облаку не удался...

if not response.ok:

return None

# Преобразуем JSON-ответ сервера в объект Python

result = response.json()

# Возвращаем текст аудиосообщения

return result.get('result')

Осталось только доработать функцию handle_voice из "main.py"

Осталось совсем чуть-чуть

Вернемся к модулю main и импортируем созданную функцию:

from yandex_cloud import get_text_from_speech

Продолжим код функции handle_voice и добавим пару строчек:

# Сохраняем текст аудиосообщения в переменную

speech_text = get_text_from_speech(file_base_url)

# Посылаем его пользователю в виде нового сообщения bot.send_message(message.chat.id, speech_text)

Снова запускаем бота и, смотрим на результат:

Использование речевых технологий Яндекса на примере аудиосообщений Telegram или чат-бот для распознавания аудиосообщений Python, Программирование, Чат-бот, IT, Гайд, Яндекс, Длиннопост

Готово!

Полный код бота можно скачать на GitHub:

https://github.com/Molot999/yandex_cloud_stt_test

Показать полностью 8

Психологический портрет

Я на Пикабу не так давно, всего пару месяцев, представьте! И я заметила, что есть общего у обитателей данной социальной сети:

Пикабушник чаще мужчина, чем женщина, средних лет, работает, как правило, ручками, но в интернетах разбирается, не лыком шит, да не пальцем делан, как говорится! Пикабушник суров, но справедлив, за словом в карман не полезет. Глядя на Пикабушника с низины своих лет, я бы назвала его «токсиком». Пикабушник не прочь навести духоты в любом споре и по любому вопросу, как за здрасьте! Любит дать совет и рассказать, в чем ты не прав. Пикабушник особенно активен в соц.сети в период с понедельника по пятницу и с 9 до 6 вечера, тут уж сами интерпретируйте. У Пикабушника часто хорошее чувство юмора, знает анекдоты.. Пикабушник «свой в доску», душ(ев)ный.
С Пикабушником ты никогда не угадаешь, поможет он тебе сейчас, поддержит, даст все ключи и пароли, расскажет куда идти и что говорить или в панамку накидает..

Как подготовить машину к долгой поездке

Взять с собой побольше вкусняшек, запасное колесо и знак аварийной остановки. А что сделать еще — посмотрите в нашем чек-листе. Бонусом — маршруты для отдыха, которые можно проехать даже в плохую погоду.

ЧИТАТЬ

Грустная история - по мотивам к/ф Титаник

Мои подписки
Подписывайтесь на интересные вам теги, сообщества, авторов — и читайте свои любимые темы в этой ленте.
Чтобы добавить подписку, нужно авторизоваться.

Отличная работа, все прочитано! Выберите