import os # Настройка переменной окружения os.environ['TRANSFORMERS_CACHE'] = '/path/to/writable/directory' from transformers import pipeline import speech_recognition as sr from gtts import gTTS import os import io from google.oauth2.credentials import Credentials from googleapiclient.discovery import build from googleapiclient.http import MediaIoBaseDownload # Инициализация модели и токенизатора model_name = "cointegrated/rut5-base-multitask" chatbot = pipeline("text-generation", model=model_name) # Функция для распознавания речи def recognize_speech(): recognizer = sr.Recognizer() with sr.Microphone() as source: print("Скажите что-нибудь...") audio = recognizer.listen(source) try: text = recognizer.recognize_google(audio, language="ru-RU") print("Вы сказали: " + text) return text except sr.UnknownValueError: print("Не удалось распознавать речь") return "" except sr.RequestError as e: print("Ошибка сервиса распознавания речи; {0}".format(e)) return "" # Функция для синтезиса речи def synthesize_speech(text): tts = gTTS(text=text, lang="ru") tts.save("response.mp3") os.system("mpg321 response.mp3") # Функция для загрузкии документов с Google Drive def load_documents_from_drive(): creds = Credentials.from_authorized_user_file('token.json', ['https://www.googleapis.com/auth/drive.readonly']) service = build('drive', 'v3', credentials=creds) results = service.files().list(q="mimeType='application/pdf' and trashed=false", fields="files(id, name)").execute() items = results.get('files', []) documents = [] for item in items: file_id = item['id'] request = service.files().get_media(fileId=file_id) fh = io.FileIO(item['name'], 'wb') downloader = MediaIoBaseDownload(fh, request) done = False while done is False: status, done = downloader.next_chunk() print(f"Скачивание файла {item['name']}... {int(status.progress() * 100)}% завершено") fh.close() documents.append(item['name']) return documents # Основой цикл чатбота def main(): while True: user_input = recognize_speech() if user_input: response = chatbot(user_input, max_length=100, numreturn_sequences=1)[0]['generated_text'] print("Чатбот: " + response) synthesize_speech(response) if __name__ == "__main__": main()