Подробная проектная документация для автоматизированной системы распознавания речи с использованием Python.

Обзор проекта

Цель этого проекта — создать автоматизированную систему распознавания речи с использованием Python и библиотеки SpeechRecognition. Система позволит пользователям произносить команды и заставит систему выполнять различные действия на основе распознанной речи.

Требования к проекту

  • Питон 3.х
  • Библиотека распознавания речи
  • библиотека Pyttsx3
  • Библиотека запросов
  • Ключ API OpenWeatherMap (необязательно)

Архитектура проекта

Проект можно разделить на три основных компонента: распознавание речи, обработка команд и преобразование текста в речь.

Компонент распознавания речи использует библиотеку SpeechRecognition для захвата звука с микрофона пользователя, распознавания речи и преобразования ее в текст. Затем распознанный текст передается компоненту обработки команд для выполнения.

Компонент обработки команд использует словарь предопределенных команд и соответствующих им действий, чтобы определить, какое действие следует предпринять на основе распознанного текста. Команды можно настроить для выполнения различных действий, таких как определение времени, проверка погоды, воспроизведение музыки и многое другое.

Компонент вывода текста в речь использует библиотеку Pyttsx3 для преобразования ответов системы в речь и воспроизведения их через динамики пользователя.

Реализация проекта

Вот пошаговое руководство по реализации автоматизированной системы распознавания речи на Python:

  1. Установите библиотеки SpeechRecognition, Pyttsx3 и Requests с помощью pip.
pip install SpeechRecognition pyttsx3 requests
  1. Если вы хотите использовать функцию get_weather(), подпишитесь на бесплатный ключ API от OpenWeatherMap и замените заполнитель YOUR_API_KEY_HERE в коде своим собственным ключом API.

2. Создайте новый файл Python и импортируйте необходимые библиотеки:

import speech_recognition as sr
import pyttsx3
import requests
import json

3. Определите функцию для преобразования текста в речь с помощью библиотеки Pyttsx3:

def speak(text):
    engine = pyttsx3.init()
    engine.say(text)
    engine.runAndWait()

4. Определите функцию для получения текущего времени:

def get_time():
    now = datetime.datetime.now()
    time_str = now.strftime("%I:%M %p")
    return "The time is {}".format(time_str)

5. Определите функцию для получения текущей погоды с помощью OpenWeatherMap API:

def get_weather():
    api_key = "YOUR_API_KEY_HERE"
    base_url = "http://api.openweathermap.org/data/2.5/weather?"
    city_name = "New York"
    complete_url = base_url + "appid=" + api_key + "&q=" + city_name
    response = requests.get(complete_url)
    data = json.loads(response.text)
    weather = data["weather"][0]["description"]
    return "The weather in {} is {}".format(city_name, weather)

6. Создайте словарь команд и соответствующих им действий:

commands = {
    "hello": lambda: speak("Hi, how can I help you?"),
    "what's the time": lambda: speak(get_time()),
    "what's the weather like": lambda: speak(get_weather()),
    "goodbye": lambda: speak("Goodbye!"),
}

7. Создайте объект Recognizer и установите микрофон в качестве источника звука:

r = sr.Recognizer()
with sr.Microphone() as source:
    r.adjust_for_ambient_noise(source)
    print("Say something...")
    audio = r.listen(source)

8. Используйте объект Recognizer, чтобы распознать речь и преобразовать ее в текст:

try:
    text = r.recognize_google(audio)
print("You said: ", text)
except sr.UnknownValueError: print("Could not understand audio") except sr.RequestError as e: print("Could not request results; {0}".format(e))

9. Используйте распознанный текст для выполнения соответствующей команды:
```python

if text.lower() in commands:
    commands[text.lower()]()
else:
    speak("Sorry, I didn't understand that command.")

10. Наконец, вызовите функцию speak(), чтобы преобразовать ответ системы в речь и воспроизвести ее через динамики пользователя:

speak("How else can I help you?")

Заключение

В этом проекте мы создали автоматизированную систему распознавания речи с использованием Python и библиотеки SpeechRecognition. Система позволяет пользователям произносить команды и заставлять систему выполнять различные действия на основе распознанной речи. Систему можно расширить, включив в нее дополнительные команды и действия, что делает ее полезным инструментом для широкого круга приложений.

Вот полный исходный код автоматизированной системы распознавания речи с использованием Python:

import speech_recognition as sr
import pyttsx3
import requests
import json
import datetime

# Function to convert text to speech
def speak(text):
    engine = pyttsx3.init()
    engine.say(text)
    engine.runAndWait()
# Function to get the current time
def get_time():
    now = datetime.datetime.now()
    time_str = now.strftime("%I:%M %p")
    return "The time is {}".format(time_str)
# Function to get the current weather using OpenWeatherMap API
def get_weather():
    api_key = "YOUR_API_KEY_HERE"
    base_url = "http://api.openweathermap.org/data/2.5/weather?"
    city_name = "New York"
    complete_url = base_url + "appid=" + api_key + "&q=" + city_name
    response = requests.get(complete_url)
    data = json.loads(response.text)
    weather = data["weather"][0]["description"]
    return "The weather in {} is {}".format(city_name, weather)
# Dictionary of commands and their corresponding actions
commands = {
    "hello": lambda: speak("Hi, how can I help you?"),
    "what's the time": lambda: speak(get_time()),
    "what's the weather like": lambda: speak(get_weather()),
    "goodbye": lambda: speak("Goodbye!"),
}
# Create a Recognizer object and set the microphone as the audio source
r = sr.Recognizer()
with sr.Microphone() as source:
    r.adjust_for_ambient_noise(source)
    print("Say something...")
    audio = r.listen(source)
# Use the Recognizer object to recognize the speech and convert it into text
try:
    text = r.recognize_google(audio)
    print("You said: ", text)
except sr.UnknownValueError:
    print("Could not understand audio")
except sr.RequestError as e:
    print("Could not request results; {0}".format(e))
# Use the recognized text to execute the corresponding command
if text.lower() in commands:
    commands[text.lower()]()
else:
    speak("Sorry, I didn't understand that command.")
# Convert the system's response into speech and play it through the user's speakers
speak("How else can I help you?")

Обратите внимание, что вам нужно будет заменить заполнитель YOUR_API_KEY_HERE в функции get_weather() вашим собственным ключом API OpenWeatherMap, если вы хотите использовать эту функцию.

Обратите внимание, что это всего лишь начальный код, который вы можете использовать в этом проекте.

Удачного кодирования