У меня есть код на aiogram для тг бота что бы изменять мужской голос на женский, но постоянно вылезает ошибка FileNotFoundError: [WinError 2] Не удается найти указанный файл
Уже и в PATH добавил, и пути менял и проверял их, ничего не помогает
Код:
from aiogram import Bot, Dispatcher, types
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.utils import executor
from pydub import AudioSegment
from pydub.playback import play
import pathlib
import os
import ffmpeg
TOKEN_API = 'token'
bot = Bot(TOKEN_API)
dp = Dispatcher(bot, storage=MemoryStorage())
print(ffmpeg.__file__)
os.environ["PATH"] += os.pathsep + 'C:\Programmirovanie\IDE\Microsoft VS Code\bots\myenv\lib\site-packages\ffmpeg'
async def on_startup(_):
print('Бот запущен')
@dp.message_handler(commands=['start'])
async def start(message: types.Message):
await message.answer('Привет, пришли голосовое для обработки')
async def change_voice_to_female(input_file, output_file):
file_path = pathlib.Path('C:/Programmirovanie/IDE/Microsoft VS Code/bots/downloaded_voice.ogg')
# Загрузка аудиофайла
AudioSegment.converter = os.getcwd()+ "\\ffmpeg.exe"
AudioSegment.ffprobe = os.getcwd()+ "\\ffprobe.exe"
sound = AudioSegment.from_file(pathlib.Path('C:/') / 'Programmirovanie' / 'IDE' / 'Microsoft VS Code' / 'bots' / 'downloaded_voice.ogg', format="mp3")
# Пример изменения на женский голос (можно настроить параметры для получения подходящего результата)
result = sound._spawn(sound.raw_data, overrides={
"frame_rate": int(sound.frame_rate * 0.97), # Уменьшение скорости
"channels": 1 # Может потребоваться для преобразования стерео в моно
})
# Экспорт измененного аудио в файл
result.export(output_file, format="mp3")
print(4)
@dp.message_handler(content_types=types.ContentTypes.VOICE)
async def process_voice_message(message: types.Message):
# Сохранение голосового сообщения для последующего преобразования
file_id = message.voice.file_id
file = await bot.get_file(file_id)
voice_path = file.file_path
downloaded_file = await bot.download_file(voice_path)
input_file = "downloaded_voice.ogg"
output_file = pathlib.Path('C:/') / 'Users' / 'Alesha' / 'AppData' / 'Roaming' / 'Telegram Desktop' / 'audio_2023-12-01_22-38-34.ogg'
with open(input_file, 'wb') as f:
f.write(downloaded_file.getvalue())
print(input_file)
# Преобразование голоса
await change_voice_to_female(input_file, output_file)
# Отправка измененного голосового сообщения обратно пользователю
with open(output_file, 'rb') as f:
modified_voice = types.InputFile(f)
await bot.send_voice(message.chat.id, voice=modified_voice
if __name__ == '__main__':
executor.start_polling(dp, on_startup=on_startup,skip_updates=True)