[*] pr0gramm1ng basics
24 subscribers
50 photos
11 videos
20 files
41 links
Обзор различных кодов и импортируемых библиотек, информация об обновлениях и многое другое у меня на канале.
Download Telegram
Превращаем голос в текст 🔥

Чтобы перевести голос в текст в python можно воспользоваться библиотекой speech_recognition.

Speech_recognition - библиотека для распознавания речи в python. Она поддерживает несколько движков и API

Установка:

pip install SpeechRecognition
# Для работы с микрофоном
pip install pyaudio

Пример с обработкой звука из микрофона:

import speech_recognition as sr

# Создаем распознаватель
recognizer = sr.Recognizer()

def recognize_speech():
with sr.Microphone() as source:
print("Скажите что-нибудь...")

# Настройка для уменьшения шума
recognizer.adjust_for_ambient_noise(source, duration=1)

# Запись аудио
audio = recognizer.listen(source, timeout=5)

# Распознавание через Google
text = recognizer.recognize_google(audio, language="ru-RU")
print(f"Вы сказали: {text}")

recognize_speech()

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

Эта библиотека также поддерживает работу с файлами (перевод звуков из файла в текст):

import speech_recognition as sr

def recognize_from_file(filename):
recognizer = sr.Recognizer()

with sr.AudioFile(filename) as source:
# Чтение всего аудиофайла
audio = recognizer.record(source)

text = recognizer.recognize_google(audio, language="ru-RU")
return text

# Использование
result = recognize_from_file("audio.wav")
print(result)

Эта библиотека подходит для распознавания голоса и его перевода в текст, но чаще всего используют другие библиотеки, но для начала её хватит
Библиотека socket в python 🐍

Socket - это библиотека для обмена данными между компьютерами. С её помощью можно установить соединение какого-либо компьютера (клиента) к другому компьютеру (серверу) и по сети передавать данные. Эта библиотека кроссплатформенная (подходит для Linux, Windows, MacOs). Также она поддерживает различные протоколы (TCP, UPD, RAW сокеты).

Пример кода клиента:

import socket

def start_client():
# создаём объект сокета с TCP подключением к IPv4
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# подключаем клиента к серверу
client_socket.connect(('localhost', 12345))

message = "Привет, сервер!"
# отправляем сообщение серверу
client_socket.sendall(message.encode())
# получаем ответ от сервера
response = client_socket.recv(1024)
print(f"Ответ сервера: {response.decode()}")
# закрываем сокет
client_socket.close()

if __name__ == "__main__":
start_client()

Пример сервера с socket:

import socket

def start_server():
# создаём объект сокета для сервера с TCP подключением и IPv4
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# привязываем к адресу и порту server_socket.bind(('localhost', 12345))
# слушаем
server_socket.listen(1)
print("Сервер запущен...")

while True:
# принимаем подключение клиента
client_socket, addr = server_socket.accept()
print(f"Подключен клиент: {addr}")
# получаем данные от клиента
data = client_socket.recv(1024)
print(f"Получено: {data.decode()}")

# Отправляем данные обратно
client_socket.sendall(data)
client_socket.close()

if __name__ == "__main__":
start_server()

Семейства адресов, которые может использовать socket:

1. Socket.AF_INET - это IPv4

2. Socket.AF_INET6 - это IPv6

3. Socket.AF_UNIX - это UNIX-сокеты

Типы сокетов:

1. Socket.SOCK_STREAM - TCP (надёжный, с установкой соединения)

2. Socket.SOCK_DGRAM - UPD (ненадёжный, без соединения)

С помощью библиотеки socket можно реализовать простейший мессенджер в консоли, чтобы обмениваться информацией с клиентом и сервером
hand.py
4.3 KB
Программа на Mediapipe для распознавания 7 жестов рук (палец вверх/вниз, ножницы, бумага, камень, рок 🤟, указательный палец вверх)

Требования 🛠️

- Python 3.10
- MediaPipe
- NumPy
- OpenCV

Также этот скрипт есть на моём 👉 GitHub 👈 с зависимостями
🔥 Всем привет. Сегодня праздник. Моё видео на канале впервые набрало 1000 просмотров, 50+ лайков и почти 30 закрепов. Также за это видео на мой канал подписались 7 человек. Такого ещё не было, но я крайне рад этому сообщению. Поздравляю вас тоже с этим прекрасным событием 🥰
🔥1
Библиотека NLTK в python 🐍

NLTK (Natural Language Toolkit) — это ведущая платформа для работы с естественным языком (NLP) в Python. Она предоставляет простые в использовании интерфейсы для более чем 50 корпусов и лексических ресурсов, а также набор библиотек для классификации, токенизации, стемминга, тегирования, синтаксического анализа и семантических рассуждений.

Установка NLTK:
pip install nltk

Настройка:

import nltk

# Загрузка необходимых ресурсов
nltk.download('punkt') # Токенизатор
nltk.download('stopwords') # Стоп-слова
nltk.download('wordnet') # Лемматизатор
nltk.download('averaged_perceptron_tagger') # POS-теггер

🔥 Токенизация - это разбиение текста на слова, предложения и т.д

Пример токенизации в NLTK:

import nltk
from nltk.tokenize import word_tokenize, sent_tokenize

text = "Hello world! This is NLTK. It's awesome."
sentences = sent_tokenize(text) # Разбиение на предложения
words = word_tokenize(text) # Разбиение на слова

print(sentences) # ['Hello world!', 'This is NLTK.', "It's awesome."]
print(words) # ['Hello', 'world', '!', 'This', 'is', 'NLTK', '.', 'It', "'s", 'awesome', '.']

🔥 Стемминг и лематизация - приведение слов к их базовой форме.

Пример стемминга в NLTK:

from nltk.stem import PorterStemmer, WordNetLemmatizer

stemmer = PorterStemmer()
lemmatizer = WordNetLemmatizer()

words = ["running", "flies", "happily", "better"]
stems = [stemmer.stem(word) for word in words]
lemmas = [lemmatizer.lemmatize(word) for word in words]

print(stems) # ['run', 'fli', 'happili', 'better']
print(lemmas) # ['running', 'fly', 'happily', 'better']

🔥 Тегирование - присвоение меток элементам текста.

Пример тегирования текста по частям речи в NLTK:

import nltk
from nltk import pos_tag
from nltk.tokenize import word_tokenize

text = "The quick brown fox jumps over the lazy dog"
tokens = word_tokenize(text)
tags = pos_tag(tokens)

print(tags)
# [('The', 'DT'), ('quick', 'JJ'), ('brown', 'JJ'), ('fox', 'NN'),
# ('jumps', 'VBZ'), ('over', 'IN'), ('the', 'DT'), ('lazy', 'JJ'), ('dog', 'NN')]

Теги для определения части речи:

- NN это существительное единственного числа

- NNS это существительное множественного числа

-VB это глагол в неопределённой форме

-VBD это глагол в прошедшем времени

- VBG это причастие

- JJ это прилагательное

- RB это наречие

- DT это определитель (the, a в английском)

- IN это предлог

- PRP это личное местоимение

🔥 Работа со стоп словами

Пример удаления малозначимых слов в NLTK:

from nltk.corpus import stopwords

nltk.download('stopwords')
stop_words = set(stopwords.words('english'))

text = "This is a sample sentence showing off stop word filtration"
words = word_tokenize(text)
filtered_words = [word for word in words if word.lower() not in stop_words]

print(filtered_words) # ['sample', 'sentence', 'showing', 'stop', 'word', 'filtration']

🔥 Анализ тональности

Пример анализа тональности в NLTK:

from nltk.sentiment import SentimentIntensityAnalyzer

nltk.download('vader_lexicon')
sia = SentimentIntensityAnalyzer()

text = "I love this product! It's amazing."
scores = sia.polarity_scores(text)

print(scores) # {'neg': 0.0, 'neu': 0.294, 'pos': 0.706, 'compound': 0.8516}

Библиотеку NLTK можно использовать в работе нейросетей, например, для извлечения полезной информации из текста, который дал пользователь
neiro.py
4.8 KB
Всем привет 👋

Я создал новую нейросеть - КОРНЕПЛОД. Эта нейросеть умеет определять что изображено на изображении (но на изображениях должны быть изображены только самолёты, коты, собаки, олени, лягушки, фуры, автомобили, корабли, лошади и птицы).

Зависимости (есть на GitHub в файле requirements.txt):

- Tensorflow 2.13.0
- NumPy 1.24.3
- Pillow 10.4.0

Скрипт работает на версии Python 3.8

Проект на 👉 Github 👈

#project #python #neiro_python_korneplod
emotions.py
2.9 KB
Привет всем 👋

Сделал новый скрипт, который определяет какую эмоцию показывает лицо на изображении с помощью библиотек RetinaFace, DeepFace и Pillow

Технологии:
- Python 3.8
- DeepFace
- RetinaFace
- Pillow

Также работа есть на 👉 GitHub 👈

#project #python #emotions_python_deepface
[*] pr0gramm1ng basics
emotions.py
Вот проводил тест для этой программы. Она обводит лицо человека на фото (если оно есть) и пишет эмоцию (например sad, happy)
Привет 👋

Я думаю многие из вас пытались сделать свой сайт. Но написание кода для этого сайта это только пол беды, ведь после написания сайта, его надо его выложить в интернет. Для этого надо сделать его хостинг и зарегистрировать доменное имя (и это всё не бесплатно). Но для этого есть решение 🧐

GitHub Pages 📃 - это бесплатный хостинг своего сайта при помощи аккаунта GitHub. Для этого надо создать репозиторий с названием: username.github.io, где username - это название вашего GitHub аккаунта (например если название аккаунта - Octocat, то репозиторий должен называться octocat.github.io)

Если у вас уже есть файлы сайта (.html, .css и .js), то их можно добавить и ваш сайта должен быть доступен в браузере. Если у вас нет файлов для сайта, то просто добавьте файл README.md (его GitHub Pages воспримет как файл .html и создаст вам сайт)

🔗 Как найти ссылку, которая будет вести к вашему сайту?

Для этого в вашем репозиторий перейдите в Настройки (Settings) -> Станицы (Pages). В этом разделе и должна быть ваша ссылка. А если не нашли её, то она должна выглядеть так: https://username.github.io (где username - это ваш ник в GitHub)

Вообщем если вы хотите бесплатно залить свой сайт в интернет, то используйте GitHub Pages 📃
👍1
Фреймворк Playwright в python 🐍

🔗 Playwright - это мощный фреймворк для автоматизации браузеров. С его помощью можно имитировать действия пользователя на сайте (например, проходить авторизацию пользователя, кликать, парсить данные). Этот фреймворк поддерживает три основных браузерных движка: Chromium, Firefox и Webkit.

Установка Playwright:

pip install playwright 

🔥 Установка браузеров:

# все браузеры 
playwright install
# какого-то одного браузера
playwright install chromium
# какого-то одного браузера с какой-то определенной версией
playwright install chromium@latest

Пример кода с использованием фреймворка Playwright:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
# запускаем браузер
browser = p.chromium.launch(headless=False) # headless=False чтобы видеть браузер
page = browser.new_page()

# идем на страницу
page.goto("https://httpbin.org/forms/post")

# заполняем форму
page.locator('input[name="custname"]').fill("Иван Иванов")
page.locator('input[value="medium"]').check()
page.locator('textarea[name="comments"]').fill("Автоматизированный комментарий!")

# делаем скриншот до отправки
page.screenshot(path="form_filled.png")

# кликаем кнопку отправки
page.locator('text=Submit').click()

# делаем скриншот результата
page.screenshot(path="form_result.png")

# закрываем браузер

browser.close()

Этот фреймворк поможет в автоматизации работы на сайте (или например, автоматической проверки вашего сайта в браузере)

#python #libraries
🔥1
Почему библиотека Pathlib лучше, чем os для работы с файлами в python 🐍

🌟 Простите, что так долго не было постов. Сегодня я решил в этом посте затронуть тему работы с файлами на python с помощью библиотеки os и библиотеки Pathlib и сравнить их.

⁉️ Почему библиотека Pathlib (Я считаю) лучше, чем os?

🧑‍🦳 1. Os это уже довольно старая библиотека. Pathlib предлагает нам новый подход к работе с папками и файлами. Например, как будет выглядеть код для объединения путей на os:

import os
path = os.path.join("data", "raw", "input.json")
print(path) # 'data/raw/input.json'

И как на Pathlib:

from pathlib import Path
path = Path('data') / 'raw' / 'input.json'
print(path) # data/raw/input.json

👀 Я думаю разница видна.

📝 2. Библиотека Pathlib будет более читабельной и удобной, чем os.

Можете просто сравнить два выше показанных кода

🔥 3. Библиотека Pathlib кроссплатформенная

🤖 В отличие от библиотеки os, библиотека Pathlib является кроссплатформенная. Она сама подстраивается к вашей операционной системе.

🔥 4. Объектно-ориентированный подход

💨 У библиотеки Pathlib при создании какого либо путя с помощью Path, создаётся объект класса Path, что позволяет работать с его атрибутами. У os этого нет, поэтому приходится работать просто со строками

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

#python #libraries
🔥1
[*] pr0gramm1ng basics
Photo
Всем привет 👋

(😓 Сорян за отсутствие, делаю новый проект почти на 1000 строк кода. Скоро появится здесь, на гитхабе и в тик токе)

🔗 Matplotlib - мощная и гибкая библиотека для создания самых разных анимированных и интерактивных графиков. Эта библиотека может создавать: линейные графики, столбчатые диаграммы, гистограммы, круговые диаграммы и многое другое

😎 Для создания графиков в основном mathplotlib использует pyplot

Вот пример графика синусоиды:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100) #создаём массив из 100 равномерно распределённых чисел от 0 до 10 включительно

y = np.sin(x) #вычимляеи синус каждого элемента массива

plt.figure(figsize=(10, 6)) #создаём новый график 10 на 6 дюймов

plt.plot(x, y, 'b-', linewidth=2, label='sin(x)') #создаём график, где по оси x мы ставим значение переменной x, по оси y ставим значения y

# 'b-' - создаём линию из - синего (blue) цвета

# linewidth - устанавливаем толщину линий графика

# label - задаём метку для legend()

plt.title('Синусоида') #устанавливаем заголовок

plt.xlabel('X') #подписываем ось x

plt.ylabel('Y') #подписываем ось y

plt.legend() #отображаем легенду на графике

plt.grid(True) #включаем отображение сетки

plt.show() #показываем график

# или

plt.savefig('graphic.png') #сохраняем график в файл

plt.close() #освобождаем память от фигур

🔥 На изображении показан график, который мне выдал mathplotlib. Если увеличить в linspace 2 параметр (вместо 10 псотавить другое число), то синусоида будет либо увеличиваться или уменьшаться

Вообщем, для создания графиков лучше всего использовать matplotlib. Также к этой библиотеке есть дополнение (по моему seaborn)

#python #libraries
🔥1
вот вам небольшой спойлер моего проекта. Слева можете увидеть его длину (почти 900 строк кода на данный момент)

#ball_head_game #python
1
Всем привет 👋

🛠️ Делал скрипт для видео (к сожалению та мини-игра на 1000 строк кода ещё не доделана. Я добавляю мультиплеер, чтобы можно было играть с друзьями) и наконец-то доделал. Сегодня видео про него делать в тик ток не буду, сделаю завтра. Сам скрипт есть на моём 👉 GitHub 👈

🔥 Кратко о скрипте:

Он работает на Python 3.10. Использует библиотеки OpenCV (для работы с видео), numpy и math (для вычислений), screeninfo (для работы с размером монитора), pynput (для контроля кликов мыши) и time (для работы с временем).

🌟 Этот скрипт находит на изображении руку и считает расстояние между её большим и указательным пальцем (это расстояние он округляет и делит на 10 для удобства). Если расстояние между пальцами большое, то делается клик. Если же расстояние между пальцами слишком маленькое, то клик не делается. Идея этого скрипта мне пришла из эдита в тик токе. В нём был фрагмент, где человек с помощью пальцев прыгал гугл динозавриком (это я и сделал) 🌟

Все зависимости написаны в файле requirements.txt. Их надо лишь установить

#python #project #hand_click_distance
1
Видео выложил

UPD: наверное перевыложу, так как набрало всего 7 просмотров

UPD: перевыложил
🔥1