Создаем свою Алису при помощи Python
В начале установим русские голосва в систему windows. Я оставлю ссылку на скачивание, перейдя по ней зайдите в раздел SAPI 5 -> Russian. Выбираем понравившийся голос, устанавливаем, и идем дальше.
Устанавливаем библиотеку pyttsx3 для синтеза речи:
Далее можно просто написать тестовую программу, для проверки корректности установки:
Распознавание речи
Множество инструментов для распознавания речи увы, но платные. Но существует бесплатная библиотека speech_recognition.
Для работы с микрофоном нам понадобится библиотека PyAudio
Некоторые пользователи испытывают проблему с ее установкой, поэтому по этой ссылке вы сможете скачать нужную вам версию. Далее введите в консоль:
Опять проверяем установку на тестовой программе. Только исправьте "device_incex=1" на свое значение индекса микрофона. Узнать индекс своего микрофона можно так:
Тест распознавания речи:
Для управления ботом на Python, нужно написать такой код:
Здесь бот озвучивает все ответы
Пожалуй на сегодня все. В следующей части будет рассказано как сделать "умного" бота, умеющий не только отвечать, но и делать!
Find all the microphone names and device index in Python using PyAudio
If you want to work with a microphone in your Python program, then you must have to know the device id of your mic. In this python tutorial, I will make it easy to get the mic id or index in Python. We will find mic device names and index attached to our machine in our python program.
Let’s get started.
Python program to find the mic names id in PyAudio
To work with the microphone or audio input device in your Python program, you have to enter the device name or index to specify which device you want to use.
To find the mic device attached to your computer you will need to have the following packages installed on your python.
- SpeechRecognition
- PyAudio
Both of them are available in pip to install.
The commands are:
For Mac users install the following packages first:
Linux Users may use this:
If this does not work, then the possible reason is that you are running a virtual environment. In that case, install pyaudio using pip.
That’s It. Now you are all set to get the mic list attached to your device.
Import speech_recognition module to use microphone class
Using the below code we can import the package.
The following line will return all the mic devices attached to your PC.
Now what you have to do is just simply print the output to get the microphones.
Print all the mic connected to your machine in Python
In my case, this is the output. The output might be different from mine, as it depends on the attached devices.
Now the question arises which device will work properly and how to use these microphones.
Find mic device index
As you are a programmer you know in an array index starts with zero. Thus the very first device listed in the above array holds the index 0. The second one holds the index 1 and so on.
In my case, ‘Microphone (Realtek High Defini’ works properly on my machine as a mic. So I will pick this one.
Создание голосового ассистента на Python, часть 1
Добрый день. Наверное, все смотрели фильмы про железного человека и хотели себе голосового помощника, похожего на Джарвиса. В этом посте я расскажу, как сделать такого ассистента с нуля. Моя программа будет написана на python 3 в операционной системе windows. Итак, поехали!
Работать наш ассистент будет по такому принципу:
- Постоянно «слушать» микрофон
- Распознавать слова в google
- Выполнять команду, либо отвечать
Для начала мы установим в систему windows русские голоса. Для этого переходим по ссылке и скачиваем голоса в разделе SAPI 5 -> Russian. Там есть 4 голоса, можно выбрать любой, какой вам понравится. Устанавливаем и идём дальше.
Нам нужно поставить библиотеку pyttsx3 для синтеза речи:
Затем можно запустить тестовую программу и проверить правильность её выполнения.
2) Распознавание речи
Существует много инструментов для распознавания речи, но они все платные. Поэтому я пытался найти бесплатное решение для моего проекта и нашёл её! Это библиотека speech_recognition.
Также для работы с микрофоном нам необходима библиотека PyAudio.
У некоторых людей возникает проблема с установкой PyAudio, поэтому следует перейти по этой ссылке и скачать нужную вам версию PyAudio. Затем ввести в консоль:
Затем запускаете тестовую программу. Но перед этим вы должны исправить в ней device_index=1 на своё значение индекса микрофона. Узнать индекс микрофона можно с помощью этой программы:
Тест распознавания речи:
Если всё отлично, переходим дальше.
Если вы хотите, чтобы ассистент просто общался с вами (без ИИ), то это можно сделать с помощью бесплатного инструмента DialogFlow от Google. После того, как вы залогинетесь, вы увидите экран, где уже можно создать своего первого бота. Нажмите Create agent. Придумайте боту имя (Agent name), выберете язык (Default Language) и нажмите Create. Бот создан!
Чтобы добавить новые варианты ответов на разные вопросы, нужно создать новый intent. Для этого в разделе intents нажмите Create intent. Заполните поля «Название» и Training phrases, а затем ответы. Нажмите Save. Вот и всё.
Чтобы управлять ботом на python, нужно написать такой код. В моей программе бот озвучивает все ответы.
На сегодня всё. В следующей части я расскажу как сделать умного бота, т.е. чтобы он мог не только отвечать, но и что-либо делать.
Python. Используем PyAudio для записи звука
В этой публикации мы расмотрим как при помощи библиотеки PyAudio записать звук из любого источника, будь то микрофон, микшер или что-то еще. Перед началом работы надо установить библиотеку , для разных ОС существуют разные способы установки:
Работа с PyAudio
PyAudio — это библиотека предоставляет возможность записи аудио(звука) с помощью Python. PyAudio записывает полученный аудио поток в объекты типа bytes. В последующем данные могут быть сохранены в виде файлов WAV с использованием таких библиотек как scipy или wave соответственно. Для того что бы записать звук например с микрофона, нам надо определить идентификатор используемого устройства, в нашем случае микрофона.
Для этого нам надо написать следующий код, который выведет нам весь список доступных устройств и их идентификаторы:
после запуска скрипта мы получим список всех устройств и их идентификаторы:
В полученном списке мы ищем запись "Микрофон" и определяем его идентификатор, который равен 2. Далее этот идентификатор мы будем использовать в настроках PyAudio. Прежде чем использовать библиотеку PyAudio нам надо определить некоторые параметры:
- format — размер семпла и его формат (pyaudio.paInt16, pyaudio.paInt24, pyaudio.paInt8)
- channels — кол-во каналов аудио (обычно 2)
- frames_per_buffer — размер буффера записи
- rate — частота дискритизации 96000, 44100, 22050, 11025, 8000
- input_device_index — идентификатор устройства
- input — вывод True или False
Как будет работать запись: для начала надо будет инициализовать поток PyAudio через параметры. Далее в цикле будем записывать кусками данные в массив, после того как закончиться запись мы запишем все данные в файл.
Пример кода
Пример кода для записи звука:
после выполнения скрипта мы получим wav файл который можно открыть в любом плеере.