Для создания спектрограммы звука воспользуйтесь библиотекой librosa. Вот пример, как добавить функцию спектрограммы к вашей программе:
```python
import speech_recognition as sr
import pyttsx3
import librosa
import librosa.display
import matplotlib.pyplot as plt
# Создаем объекты для синтеза речи
recognizer = sr.Recognizer()
engine = pyttsx3.init()
# Функция для преобразования текста в речь
def speak(text):
engine.say(text)
engine.runAndWait()
# Функция для отображения спектрограммы звука
def plot_spectrogram(file_path):
y, sr = librosa.load(file_path)
spectrogram = librosa.feature.melspectrogram(y, sr=sr)
plt.figure(figsize=(10, 4))
librosa.display.specshow(librosa.power_to_db(spectrogram, ref=np.max), y_axis='mel', fmax=8000, x_axis='time')
plt.colorbar(format='%+2.0f dB')
plt.title('Spectrogram')
plt.show()
# Основной цикл работы помощника
while True:
text = input("Введите текст: ")
speak(text)
# Сохраняем речевой файл, который преобразуется в спектрограмму
speech_file = "speech.wav"
with sr.AudioFile(speech_file) as source:
audio = recognizer.record(source)
recognizer.recognize_sphinx(audio)
plot_spectrogram(speech_file)
```
В этом примере после ввода текста программа будет синтезировать речь и сохранять ее в файл "speech.wav". Затем этот файл будет преобразован в спектрограмму с помощью функции `plot_spectrogram`.