Advertisement
DimaDevelop

Untitled

Aug 26th, 2022
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.26 KB | None | 0 0
  1. from vkbottle.bot import Bot, Message
  2. from vkbottle import VoiceMessageUploader
  3. from config import token
  4. import requests, datetime
  5. from loguru import logger
  6. import os
  7. import torch
  8.  
  9. bot = Bot(token=token)
  10. api = "токен"
  11.  
  12.  
  13.  
  14. def get_voice(text):
  15.     device = torch.device('cpu')
  16.     torch.set_num_threads(4)
  17.     local_file = 'model.pt'
  18.  
  19.     if not os.path.isfile(local_file):
  20.         torch.hub.download_url_to_file('https://models.silero.ai/models/tts/ru/v3_1_ru.pt',
  21.                                        local_file)  
  22.  
  23.     model = torch.package.PackageImporter(local_file).load_pickle("tts_models", "model")
  24.     model.to(device)
  25.  
  26.     sample_rate = 48000
  27.     speaker='baya'
  28.  
  29.     audio_paths = model.save_wav(text=text,
  30.                                  speaker=speaker,
  31.                                  sample_rate=sample_rate)
  32.  
  33.  
  34.  
  35. @bot.on.message(text="погода <q>")
  36. async def hi_handler(message: Message, q):
  37.     try:
  38.         r = requests.get(f"https://api.openweathermap.org/data/2.5/weather?q={q}&appid={api}&units=metric")
  39.         data = r.json()
  40.         name = data['main']
  41.         temp = name['temp']
  42.         humidity = name['humidity']
  43.         temp_max = name['temp_max']
  44.         temp_min = name['temp_min']
  45.         wind = data['wind']['speed']
  46.         sunrise = datetime.datetime.fromtimestamp(data['sys']['sunrise'])
  47.         await message.answer(f"В {data['name']}: {str(temp)} °C\n" \
  48.                                           f"Влажность: {humidity}%\n" \
  49.                                           f"Максимальная температура: {temp_max} °C\n" \
  50.                                           f"Минимальная температура: {temp_min} °C\n" \
  51.                                           f"Скорость ветра: {wind}\n" \
  52.                                           f"Восход солнца: {sunrise}")
  53.     except:
  54.         await message.answer("Повторите попытку")
  55.  
  56. @bot.on.message(text=["гс <audio>"])
  57. async def get_revoice(message: Message, audio):
  58.     voice = VoiceMessageUploader(bot.api)
  59.     get_voice(audio)
  60.     audio_get = await voice.upload("voice.wav", "test.wav", peer_id=message.peer_id)
  61.     await message.answer(attachment=audio_get)
  62.  
  63. bot.run_forever()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement