Update log
# Update Log ## [v1.0.1] - 2024-11-12 ### Added - Добавлен скрипт `install.bat` для автоматической настройки виртуального окружения и установки зависимостей. - Добавлен скрипт `start.bat` для активации виртуального окружения и запуска `main.py`. - Добавлен `Dockerfile` для создания и запуска контейнера с ботом. - Добавлен скрипт `main.py`, использующий библиотеку `aiogram` для обработки голосовых сообщений и их конвертации в текст. ### Changed - Обновлен скрипт `main.py` для конвертации формата голосовых сообщений с использованием `pydub`. ### Fixed - Исправлены проблемы с импортом `aiogram` и обработкой формата `.oga` для голосовых сообщений.
This commit is contained in:
1 parent
de9b6d9ea2
commit
6a5062f3cf
5 files changed
+112
No files matched your search
+17
@@ -0,0 +1,17 @@
|
||||
# Используем официальный образ Python в качестве базового
|
||||
FROM python:3.10-slim
|
||||
|
||||
# Устанавливаем рабочую директорию внутри контейнера
|
||||
WORKDIR /app
|
||||
|
||||
# Копируем файл requirements.txt в рабочую директорию
|
||||
COPY requirements.txt .
|
||||
|
||||
# Устанавливаем зависимости
|
||||
RUN pip install --no-cache-dir -r requirements.txt
|
||||
|
||||
# Копируем все файлы проекта в рабочую директорию
|
||||
COPY . .
|
||||
|
||||
# Устанавливаем команду для выполнения при запуске контейнера
|
||||
CMD ["python", "main.py"]
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
@echo off
|
||||
REM Создание виртуального окружения
|
||||
python -m venv venv
|
||||
|
||||
REM Активация виртуального окружения
|
||||
call venv\Scripts\activate
|
||||
|
||||
REM Обновление pip
|
||||
python.exe -m pip install --upgrade pip
|
||||
|
||||
REM Установка зависимостей из requirements.txt
|
||||
pip install -r requirements.txt
|
||||
|
||||
echo Установка завершена!
|
||||
pause
|
||||
@@ -0,0 +1,43 @@
|
||||
import os
|
||||
from aiogram import Bot, Dispatcher, types
|
||||
from aiogram.utils import executor
|
||||
import speech_recognition as sr
|
||||
from pydub import AudioSegment
|
||||
|
||||
API_TOKEN = '7812128361:AAHtv_q-sGMKzJGVrEn4LAXpdieZPmlxfwc'
|
||||
bot = Bot(token=API_TOKEN)
|
||||
dp = Dispatcher(bot)
|
||||
|
||||
@dp.message_handler(content_types=[types.ContentType.VOICE])
|
||||
async def handle_voice_message(message: types.Message):
|
||||
# Сохранение голосового сообщения
|
||||
file_info = await bot.get_file(message.voice.file_id)
|
||||
file_path = file_info.file_path
|
||||
voice_file = f"voice_{message.message_id}.oga"
|
||||
wav_file = f"voice_{message.message_id}.wav"
|
||||
|
||||
await bot.download_file(file_path, voice_file)
|
||||
|
||||
# Конвертация .oga в .wav
|
||||
audio = AudioSegment.from_ogg(voice_file)
|
||||
audio.export(wav_file, format="wav")
|
||||
|
||||
# Распознавание речи
|
||||
recognizer = sr.Recognizer()
|
||||
audio_file = sr.AudioFile(wav_file)
|
||||
with audio_file as source:
|
||||
audio_data = recognizer.record(source)
|
||||
try:
|
||||
text = recognizer.recognize_google(audio_data, language='ru-RU')
|
||||
await message.answer(f"Распознанный текст: {text}")
|
||||
|
||||
# Удаление голосового сообщения
|
||||
os.remove(voice_file)
|
||||
os.remove(wav_file)
|
||||
except sr.UnknownValueError:
|
||||
await message.answer("Не удалось распознать речь.")
|
||||
except sr.RequestError as e:
|
||||
await message.answer(f"Ошибка сервиса распознавания речи: {e}")
|
||||
|
||||
if __name__ == '__main__':
|
||||
executor.start_polling(dp, skip_updates=True)
|
||||
@@ -0,0 +1,28 @@
|
||||
# requirements.txt
|
||||
|
||||
aiofiles==24.1.0
|
||||
aiogram==2.25.1
|
||||
aiohappyeyeballs==2.4.3
|
||||
aiohttp==3.8.6
|
||||
aiosignal==1.3.1
|
||||
annotated-types==0.7.0
|
||||
async-timeout==4.0.3
|
||||
attrs==24.2.0
|
||||
Babel==2.9.1
|
||||
certifi==2024.8.30
|
||||
charset-normalizer==3.4.0
|
||||
ffmpeg==1.4
|
||||
frozenlist==1.5.0
|
||||
idna==3.10
|
||||
magic-filter==1.0.12
|
||||
multidict==6.1.0
|
||||
propcache==0.2.0
|
||||
pydantic==2.9.2
|
||||
pydantic_core==2.23.4
|
||||
pydub==0.25.1
|
||||
pytz==2024.2
|
||||
requests==2.32.3
|
||||
SpeechRecognition==3.11.0
|
||||
typing_extensions==4.12.2
|
||||
urllib3==2.2.3
|
||||
yarl==1.17.1
|
||||
Reference in new issue
Block a user