РАЗРАБОТКИ

Другие модули


Создание интеллектуальной системы «вопрос-ответ», распознающей речь и реагирующей на неё

Туракулов Искандар Нуритдинович, канд.тех.наук, доц.
Самаркандский государственный университет,
Республика Узбекистан,

Аннотация. В статье рассматривается создание простой интеллектуальной системы «вопрос-ответ», распознающей речь и реагирующей на неё на языке программирования Python.

Ключевые слова: язык программирования Python, системное программирование, графический интерфейс, модули Python, speech_recognition, pyttsx3.

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

Мы используем возможности языка для распознавания и воспроизведения речевого ввода с микрофона.

Для распознавания, обработки и воспроизведения голосового ввода с микрофона можно использовать модули Python speech_recognition и pyttsx3. Процесс распознавания голоса выполняется с помощью функции Microphone() модуля speech_recognition.

Распознанный голос отображается в текстовом представлении с помощью функции recognize_google(audio) модуля speech_recognition.
.Распознанный звук преобразуется в текст с помощью функции recognize_google(audio) модуля speech_recognition. Чтобы убедиться, что программа правильно распознала входной звук (голос), можно вывести преобразованный звук в текст.

Ниже представлен код для этих процессов:

import speech_recognition as sr
recording = sr.Recognizer()
with sr.Microphone() as source:
recording.adjust_for_ambient_noise(source)
print("Пожалуйста, скажите что-нибудь:")
audio = recording.listen(source)
try:
print("Вы сказали: \n" + recording.recognize_google(audio))
except Exception as e:
print(e)

Здесь мы используем модуль pyttsx3 (преобразование текста в речь) и его функции. Настройки выходного звука (голоса) мы передаем через функции модуля setProperty('rate', 150) (количество слов в минуту) и setProperty('volume', 0.8) (громкость в процентах).

Ниже представлен код этого процесса:Import pyttsx3
# преобразовать текст в голос
engine = pyttsx3.init()
# Установить скорость и громкость голоса
engine.setProperty('rate', 150) # 150 слов в минуту
engine.setProperty('volume', 0.8) # громкость 80%
# Получить текст голоса пользователя
#text = input("Введите текст для озвучивания: ")
text=recording.recognize_google(audio)
# Преобразовать текст в голос
engine.say(text)
engine.runAndWait()

Вот код для распознавания и воспроизведения голоса путем объединения обоих приведенных выше программных кодов:
import speech_recognition as sr
import pyttsx3
recording = sr.Recognizer()
with sr.Microphone() as source:
recording.adjust_for_ambient_noise(source)
print("Пожалуйста, скажите что-нибудь:")
audio = recording.listen(source)
try:
print("Вы сказали: \n" + recording.recognize_google(audio))
except Exception as e:
print(e)
# Преобразование текста в голос
engine = pyttsx3.init()
# Установите скорость и громкость голоса
engine.setProperty('rate', 150) # 150 слов в минуту
engine.setProperty('volume', 0.8) # громкость 80%
# Получить головой текст пользователя
#text = input("Enter the text to voice: ")
text=recording.recognize_google(audio)
# Преобразование текста в голос
engine.say(text)
engine.runAndWait()

Создание интеллектуальной системы «вопрос-ответ». Превратить программу в интеллектуальную систему «вопрос-ответ» можно, внедрив в её код дополнительную функцию (или пользовательский модуль), распознающую и воспроизводящую речевой ввод с микрофона.

Чтобы продемонстрировать интеллект программы, мы используем концепцию строк Python (как базу знаний), ее оператор зависимости и составной оператор условного перехода Python во вспомогательной функции.import speech_recognition as sr

import pyttsx3
x = 'hello hi privet'
recording = sr.Recognizer()
with sr.Microphone() as source:
recording.adjust_for_ambient_noise(source)
print("Please Say something:")
audio = recording.listen(source)
try:
print("You said: \n" + recording.recognize_google(audio))
except Exception as e:
print(e)

# Initialize the text-to-speech engine
engine = pyttsx3.init()

# Set the speed and volume of the voice
engine.setProperty('rate', 150) # 150 words per minute
engine.setProperty('volume', 0.8) # 80% volume

# Get the text to voice from the user
#text = input("Enter the text to voice: ")
text=recording.recognize_google(audio)

# допольнительная функция
if (text in x):
text="bravo!"
else:
#text="I didn't understand you"
text="я вас не понял"
# конец функции

# Convert the text to speech
engine.say(text)
engine.runAndWait()

Список использованной литературы:

  1. Федоров, Д. Ю. Программирование на языке высокого уровня Python : учеб. пособие для прикладного бакалавриата / Д. Ю. Федоров. — 2-е изд., перераб. и доп. — М.: Издательство Юрайт, 2019. — 161 с.
  2. Г. Россум, Ф.Л.Дж. Дрейк, Д.С. Откидач, М. Задка, М. Левис, С. Монтаро, Э.С. Реймонд, А.М. Кучлинг, М.-А. Лембург, К.-П. Йи, Д. Ксиллаг, Х.Г. Петрилли, Б.А. Варсав, Дж.К. Ахлстром, Дж. Роскинд, Н.Шеменор, С. Мулендер. Язык программирования Python. / 2001 — 454 c.
Всего комментариев: 0
Если Вы хотите оставить комментарий к этому материалу, то рекомендуем Вам зарегистрироваться на нашем сайте или войти на портал как зарегистрированный пользователь.
Свидетельство о публикации статьи
В помощь учителю

Уважаемые коллеги! Опубликуйте свою педагогическую статью или сценарий мероприятия на Учительском портале и получите свидетельство о публикации методического материала в международном СМИ.

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

Конкурсы для учителей

Диплом и справка о публикации каждому участнику!

Наш канал в Телеграм
Маркер СМИ

© 2007 - 2024 Сообщество учителей-предметников "Учительский портал"
Свидетельство о регистрации СМИ: Эл № ФС77-64383 выдано 31.12.2015 г. Роскомнадзором.
Территория распространения: Российская Федерация, зарубежные страны.
Учредитель / главный редактор: Никитенко Е.И.


Сайт является информационным посредником и предоставляет возможность пользователям размещать свои материалы на его страницах.
Публикуя материалы на сайте, пользователи берут на себя всю ответственность за содержание этих материалов и разрешение любых спорных вопросов с третьими лицами.
При этом администрация сайта готова оказать всяческую поддержку в решении любых вопросов, связанных с работой и содержанием сайта.
Если вы обнаружили, что на сайте незаконно используются материалы, сообщите администратору через форму обратной связи — материалы будут удалены.

Все материалы, размещенные на сайте, созданы пользователями сайта и представлены исключительно в ознакомительных целях. Использование материалов сайта возможно только с разрешения администрации портала.


Фотографии предоставлены