голосовой mp3 бот случайных фраз
эти фразы нужно создать и поместить в папку с программой
import os
import random
import pygame
# Инициализация Pygame
pygame.mixer.init()
# Функция для воспроизведения случайного MP3-файла
def play_random_mp3():
# Получаем список всех MP3-файлов в текущей директории
mp3_files = [f for f in os.listdir() if f.endswith('.mp3')]
if not mp3_files:
print("Нет доступных MP3-файлов в папке.")
return
# Выбираем случайный файл из списка
random_file = random.choice(mp3_files)
print(f"Я говорю - {random_file}")
# Воспроизводим выбранный файл
pygame.mixer.music.load(random_file)
pygame.mixer.music.play()
# Ждем, пока музыка не закончится
while pygame.mixer.music.get_busy():
continue
# Основной цикл программы
def main():
print("Введите фразу:")
while True:
user_input = input()
if user_input.lower() == 'выход':
print("Завершение ")
break
play_random_mp3()
if __name__ == "__main__":
main()
также вы можете перевести mp3 файл в обычный текст
примерно так ->
import os
from pydub import AudioSegment
import speech_recognition as sr
# Функция для конвертации MP3 в WAV
def convert_mp3_to_wav(mp3_file):
audio = AudioSegment.from_mp3(mp3_file)
wav_file = mp3_file.replace('.mp3', '.wav')
audio.export(wav_file, format='wav')
return wav_file
# Функция для распознавания речи
def recognize_speech_from_audio(audio_file):
recognizer = sr.Recognizer()
with sr.AudioFile(audio_file) as source:
audio_data = recognizer.record(source)
try:
text = recognizer.recognize_google(audio_data, language='ru-RU') # Укажите нужный язык
return text
except sr.UnknownValueError:
return "Не удалось распознать аудио"
except sr.RequestError as e:
return f"Ошибка сервиса распознавания: {e}"
# Основной блок программы
def main():
mp3_file = input("Введите имя MP3-файла (с расширением): ")
if not os.path.isfile(mp3_file):
print("Файл не найден.")
return
wav_file = convert_mp3_to_wav(mp3_file)
text = recognize_speech_from_audio(wav_file)
print(f"Распознанный текст: {text}")
if __name__ == "__main__":
main()
Свидетельство о публикации №125030507136