Подробная проектная документация для автоматизированной системы распознавания речи с использованием Python.
Обзор проекта
Цель этого проекта — создать автоматизированную систему распознавания речи с использованием Python и библиотеки SpeechRecognition. Система позволит пользователям произносить команды и заставит систему выполнять различные действия на основе распознанной речи.
Требования к проекту
- Питон 3.х
- Библиотека распознавания речи
- библиотека Pyttsx3
- Библиотека запросов
- Ключ API OpenWeatherMap (необязательно)
Архитектура проекта
Проект можно разделить на три основных компонента: распознавание речи, обработка команд и преобразование текста в речь.
Компонент распознавания речи использует библиотеку SpeechRecognition для захвата звука с микрофона пользователя, распознавания речи и преобразования ее в текст. Затем распознанный текст передается компоненту обработки команд для выполнения.
Компонент обработки команд использует словарь предопределенных команд и соответствующих им действий, чтобы определить, какое действие следует предпринять на основе распознанного текста. Команды можно настроить для выполнения различных действий, таких как определение времени, проверка погоды, воспроизведение музыки и многое другое.
Компонент вывода текста в речь использует библиотеку Pyttsx3 для преобразования ответов системы в речь и воспроизведения их через динамики пользователя.
Реализация проекта
Вот пошаговое руководство по реализации автоматизированной системы распознавания речи на Python:
- Установите библиотеки SpeechRecognition, Pyttsx3 и Requests с помощью pip.
pip install SpeechRecognition pyttsx3 requests
- Если вы хотите использовать функцию
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, если вы хотите использовать эту функцию.
Обратите внимание, что это всего лишь начальный код, который вы можете использовать в этом проекте.
Удачного кодирования