Кластерный анализ (k-means) на python

Алгоритм Random Forest на практике

Настало время реализовать алгоритм случайного леса на языке Python с использованием Scikit-Learn. Вместо того чтобы работать над элементарной теоретической задачей, мы используем реальный набор данных, разбив его на обучающий и тестовый сеты. Тестовые данные мы используем для оценки того, насколько хорошо наша модель справляется с новыми данными, что поможет нам выяснить уровень переобучения.

Набор данных

Мы попробуем рассчитать состояние здоровья пациентов в бинарной системе координат. В качестве параметров мы используем социально-экономические и персональные характеристики субъектов. В качестве меток мы используем 0 для плохого здоровья и 1 для хорошего. Этот набор данных был собран Центром по Контролю и Предотвращению Заболеваний и размещён в свободном доступе.

Как правило 80 % работы над научным проектом заключается в изучении, очистке и синтезировании параметров из сырых данных (подробнее узнать можно здесь). Однако в этой статье мы сосредоточимся на построении модели.

В данном примере мы сталкиваемся с задачей несбалансированной классификации, поэтому простой параметр точности модели не отобразит истинной её производительности. Вместо этого мы используем площадь под кривой операционных характеристик приёмника (ROC AUC), измерив от 0 (в худшем случае) до 1 (в лучшем случае) со случайным прогнозом на уровне 0,5. Мы также можем построить указанную кривую, чтобы проанализировать модель.

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

После нескольких минут обучения модель будет готова выдавать прогнозы для тестовых данных:

Мы рассчитаем прогнозы классификации () наряду с прогностической вероятностью (), чтобы вычислить ROC AUC.

Язык программирования Python

Python – это высокоуровневый, динамичный, объектно-ориентированный язык программирования. Он ориентирован на повышение производительности программиста и читаемости кода. Разработчиком кода является Гвидо ван Россум. Впервые язык увидел свет в 1991 году. Для создания Python автор вдохновлялся такими языками программирования как ABC, Haskell, Java, Lisp, Icon и Perl. Python является высокоуровневым, кроссплатформенным, но в то же время минималистичным языком. Одним из его основных преимуществ является отсутствие скобок и точек с запятой. Вместо этого Python использует отступы. Сегодня существует две основные ветви языка: Python 2.x и Python 3.x.

Стоит отметить, что Python 3.x нарушает обратную совместимость с предыдущими версиями языка. Его разработали для того, чтобы исправить ряд недостатков конструкции уже существующего языка, упростить и очистить его от ненужных деталей. Последней версией Python 2.x является 2.7.10, а Python 3.x – 3.5.0. Данный учебник написан на Python 2.x, равно как и большая часть кода.

Для перехода программного обеспечения и самих разработчиков на Python 3.x потребуется какое-то время. Сегодня Python поддерживается большим количеством добровольцев со всего мира. Напомню, что язык имеет открытый исходный код.
Python – это идеальный язык для тех людей, которые хотят научиться программировать.

Шаг 5 — Запуск сайта на реальном сервере

Так, давайте вернемся в нашему сайту. Запустить сайт на Python не так просто, как c HTML и PHP файлами, когда мы перетаскиваем и загружаем файлы при помощи FTP-клиента. Нам нужно делать всё по порядку, будьте терпеливы и внимательно выполняйте каждый шаг.

Шаг 5.1 — Создаем аккаунт Heroku

Создайте аккаунт на Heroku, перейдя по этой ссылке.

Шаг 5.2 — Устанавливаем необходимый инструменты

Прежде всего это , мы будем использовать git для загрузки файлов на сервер. А чтобы установить git, откройте командную строку и введите следующее:

sudo apt install git-all
git config --global user.name "John Doe"git config --global user.email johndoe@example.com

Далее следует, это такой собственный git для Heroku. Для установки:

sudo snap install --classic heroku

Отлично. Теперь у нас есть всё, что нужно. Поехали дальше.

Шаг 5.3 — Настройка Heroku через командную строку

Нужно установить Heroku туда же, где находится наше приложение. Давайте перейдем в папку с нашим основным скриптом, и зайдем в аккаунт Heroku, используя наши данные. Вас попросят нажать любую клавишу для входа и перенаправят в браузер. После того ,как вы успешно вошли, ваша командная строка будет выглядеть так:

Нажмите любую кнопку

Теперь нам нужно создать наше приложение. Хорошо подумайте над его названием, потому что это будет ваше доменное имя после herokuapp.com. Например, . Я хотел использовать своё имя, но такое название было уже занято. Поэтому я выбрал .

Шаг 5.4 — Создаем необходимые файлы (всего 3)

requirements.txt — Содержит список зависимостей (библиотек), которые Heroku должен установить, чтобы наше приложение работало правильно. Для этого, переходим в виртуальную среду, которую мы создали ранее, с помощью pip устанавливаем. Это веб-сервер Python. После этого напишите , чтобы увидеть список зависимостей, а потом , чтобы создать текстовый файл с этим списком. Это нам и нужно. Вы можете найти файл в вашей папке, переместите его туда, где находится наш файл Python.

Список зависимостей

Важное примечание — Пожалуйста, удостоверьтесь, что ваш файл requirements выглядит, как представленный ниже. Иначе Heroku не примет его и выдаст ошибку

Отредактируйте файл, чтобы он выглядел так.

requirements.txt

Procfile — У этого файла нет расширения. Он содержит имя сервера и название приложения. Создайте файл, назовите его и напишите в нем следующее:

web: gunicorn mainscript:app

Здесь, gunicorn — это используемый сервер. — это название файла Python, — это название приложения, которое мы придумали при создании экземпляра класса flask (смотри фрагмент кода в шаге 2). Если ваши названия отличаются, измените их.

runtime.txt — Содержит информацию о версии Python, которую вы хотите использовать. В этом файле напишите:

python-3.7.0

Я использую Python 3.x, поэтому я использовал эту среду. Если вы используете Python 2.x, укажите вместо этого. Отлично, все готово. Теперь нам нужно просто всё загрузить.

Наконец, всё, что нам нужно, в одном месте

Шаг 5.5 — Загрузка всего необходимого

Отлично. Чтобы не объяснять всё по отдельности, к каждой строке дам комментарий. Каждую строку нужно выполнять отдельно.

#Убедитесь, что находитесь в той же директории, где лежит ваш файл Python#Убедитесь, что вы залогинены в heroku#Вызовите свое приложениеheroku git:remote --app dhrumilp#Инициализируйте git, чтобы загрузить все файлыgit init#Добавьте все файлы (это точка в конце, что означает все)git add .#Теперь, зафиксируйте все добавленные файлы на серверgit commit -m "First upload"#Запушьте все в master branchgit push heroku master

Загрузка…

Готово.

Всё готов. Уфф. Поздравляю, если вы смогли добраться до этого этапа. Моё приложение доступно на dhrumilp.herokuapp.com, можете посмотреть.

Готовим поляну

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

Чтобы компьютер заговорил, нужны: 

  • голосовой движок (синтезатор речи) с поддержкой нужных нам языков,
  • голоса дикторов для этого движка.

В Windows есть штатный речевой интерфейс Microsoft Speech API (SAPI). Голоса к нему выпускают, помимо Microsoft, сторонние производители: Nuance Communications, Loquendo, Acapela Group, IVONA Software. 

Есть и свободные кроссплатформенные голосовые движки: 

  • RHVoice от Ольги Яковлевой  — имеет четыре голоса для русского языка (один  мужской и три женских), а также поддерживает татарский, украинский, грузинский, киргизский, эсперанто и английский. Работает в Windows, GNU/Linux и Android.
  • eSpeak и его ответвление — eSpeak NG — c поддержкой более 100 языков и диалектов, включая даже латынь. NG означает New Generation  — «новое поколение». Эта версия разрабатывается сообществом с тех пор, как автор оригинальной eSpeak перестал выходить на связь. Система озвучит ваш текст в Windows, Android, Linux, Mac, BSD. При этом старый eSpeak стабилен в ОС Windows 7 и XP, а eSpeak NG совместим с Windows 8 и 10.

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

По качеству голоса RHVoice неплох и к нему быстро привыкаешь, а вот eSpeak очень специфичен и с акцентом. Зато eSpeak запускается на любом утюге и подходит как вариант на крайний случай, когда ничто другое не работает или не установлено у пользователя.

Установка речевых движков, голосов и модулей в Windows 

С установкой синтезаторов в Windows проблем возникнуть не должно. Единственный нюанс — для русского голоса eSpeak и eSpeak NG нужно скачать расширенный словарь произношения. Распакуйте архив в подкаталог espeak-data или espeak-ng-data в директории программы. Теперь замените старый словарь новым: переименуйте ru_dict-48 в ru_dict, предварительно удалив имеющийся файл с тем же именем (ru_dict).

Теперь установите модули pywin32, python-espeak и py-espeak-ng, которые потребуются нам для доступа к возможностям TTS:

pip install pywin32 python-espeak pyttsx3 py-espeak-ng

Если у вас на компьютере соседствуют Python 2 и 3, здесь и далее пишите «pip3», а при запуске скриптов  — «python3».

Установка eSpeak(NG) в Linux

Подружить «пингвина» с eSpeak, в том числе NG, можно за минуту:

sudo apt-get install espeak-ng python-espeak

pip3 install py-espeak-ng pyttsx3

Дальше загружаем и распаковываем словарь ru_dict с официального сайта:

wget http://espeak.sourceforge.net/data/ru_dict-48.zip

unzip ru_dict-48.zip

Теперь ищем адрес каталога espeak-data (или espeak-ng-data) где-то в /usr/lib/ и перемещаем словарь туда. В моем случае команда на перемещение выглядела так:

sudo mv ru_dict-48 /usr/lib/i386-linux-gnu/espeak-data/ru_dict

Обратите внимание: вместо «i386» у вас в системе может быть «x86_64…» или еще что-то. Если не уверены, воспользуйтесь поиском:. find /usr/lib/ -name «espeak-data»

find /usr/lib/ -name «espeak-data»

Готово! 

RHVoice в Linux

Инструкцию по установке RHVoice в Linux вы найдете, например, в начале этой статьи. Ничего сложного, но времени занимает больше, потому что придется загрузить несколько сотен мегабайт.

Смысл в том, что мы клонируем git-репозиторий и собираем необходимые компоненты через scons.

Для экспериментов в Windows и Linux я использую одни и те же русские голоса: стандартный ‘ru’ в eSpeak и Aleksandr в RHVoice.

Как проверить работоспособность синтезатора

Прежде чем обращаться к движку, убедитесь, что он установлен и работает правильно. 

Проверить работу eSpeak в Windows проще всего через GUI  — достаточно запустить TTSApp.exe в папке с программой. Дальше открываем список голосов, выбираем eSpeak-RU, вводим текст в поле редактирования и жмем на кнопку Speak.

Обратиться к espeak можно и из терминала. Базовые консольные команды для eSpeak и NG совпадают — надо только добавлять или убирать «-ng» после «espeak»:

espeak -v ru -f D:\my.txt

espeak-ng -v en «The Cranes are Flying»

echo «Да, это от души. Замечательно. Достойно восхищения» |RHVoice-test -p Aleksandr

Как нетрудно догадаться, первая команда с ключом -f  читает русский текст из файла. Чтобы в Windows команда espeak подхватывалась вне зависимости от того, в какой вы директории, добавьте путь к консольной версии eSpeak (по умолчанию — C:\Program Files\eSpeak\command_line) в переменную окружения Path. Вот как это сделать.

Виджеты Streamlit

Виджеты дают нам способ контролировать наше приложение. Лучше всего почитать о них в документации Streamlit, но я опишу несколько основных, которые вам возможно пригодятся.

1. Слайдер

Мы уже видели st.slider в действии. Он может быть использован с указанием минимального и максимального значения, а также шага для получения входящих значений в заданном диапазоне.

2. Ввод текста

st.text_input — это самый простой способ получить на вход текст от пользователя — будь это какой-то URL или текст для анализа его тональности. Нужно только передать функции название текстового окна.

Так будет выглядеть получившееся приложение:

Простое приложение с виджетом text_input

Совет: Вы можете просто изменить файл helloworld.py и обновить браузер. Я обычно работаю таким образом: открываю и изменяю файл в Sublime Text и наблюдаю за изменениями в браузере расположенном в рядом с окном редактора.

3. Чекбокс

Один из вариантов использования чекбоксов — это показывать или прятать определенную часть приложения. Или, например, чекбокс может использоваться для выбора булевозначного параметра для функции. использует только один аргумент — метку виджета. 

В этом приложении чекбокс используется для переключения условного оператора:

Простой виджет-чекбокс

4. Выпадающий список

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

Приложение с выпадающим списком

5. Выбор нескольких значений

Мы также можем выбрать несколько значений из выпадающего списка. Для этого можно использовать st.multiselect, которая сохранит несколько выбранных значений в виде списка в переменную options:

Виджет с мультивыбором

Шаг 3 — HTML и CSS

Созданный нами сайт выглядит не очень красиво. Что нужно использовать, чтобы улучшить его? Конечно же, HTML и CSS. Они лучше всего подходят для этой задачи. Если вы разбираетесь в веб-разработке, вы можете создать новый файл .html с нуля. Но если вы не умеете это делать, в Интернете существует немало платформ для этого. Найдите наиболее подходящую для вас.

Теперь мы хотим, чтобы программа возвращала не простой текст, а конкретные html-страницы, которые мы создали. Для этого нужно импортировать ещё один класс, render_template. Тогда наша функция должна возвращать, чтобы мы видели конкретную html-страницу по этому маршруту.

#Import dependenciesfrom flask import Flask, render_template#Create instance of Flask Appapp = Flask(__name__)#Define Route and Contant of that page@app.route("/")def home():    return render_template("home.html")#Define 2nd Route and Content@app.route("/blog")def about():    return render_template("blog.html")#Running and Controlling the scriptif (__name__ =="__main__"):    app.run(debug=True)

Для HTML — все файлы .html, которые вы вызываете, должны содержаться в папке под названием в вашей рабочей папке.

Для CSS — вам нужно создать папку и добавить в нее папку , а уже потом добавить в неё ваши файлы .css.

Разработка геоприложений на языке Python (2017)

Написание геопространственных программ предполагает решение таких задач, как группирование данных по географическому положению, хранение и анализ больших массивов информации, выполнение сложных расчетов и построение красочных интерактивных карт.

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

Выбор проектной платформы

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

Веб

Веб-приложения — это приложения, которые работают в интернете, к ним можно получить доступ на любом устройстве без загрузки приложения на само устройство, если есть доступ к интернету. Веб-приложение состоит из бэкенда (серверной части) и фронтенда (пользовательского интерфейса). Для Python-разработчиков основное поле деятельности — бэкенд. Однако визуальная составляющая тоже важна, поэтому вам понадобятся некоторые знания HTML, CSS и, возможно, JavaScript. Чтобы создать простой интерфейс, основы будет достаточно.

Другой вариант — использовать Python как для фронтенда, так и для бэкенда с помощью библиотеки anvil. Вы можете создавать веб-приложения с помощью Python через такие веб-фреймворки как Django и Flask. Список фреймворков для создания веб-приложений на Python очень длинный, но Django и Flask остаются самыми популярными из них.

Десктоп

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

Программное обеспечение, которое вы разрабатываете, может работать на любой операционной системе, будь то Windows, Linux или Mac. Всё, что нужно сделать после создания проекта, — это скомпилировать его в исполняемый файл для выбранной операционной системы.

Командная строка

Приложения командной строки — это те приложения, которые работают в окне консоли. В Windows в роли консоли выступает сама командная строка, а в Linux и Mac это терминал.

Backend Meetup meta/conf

21 марта в 10:00, Воронеж, беcплатно

tproger.ru

События и курсы на tproger.ru

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

Приложения для командной строки могут быть не такими красивыми или простыми в использовании, как десктопные или веб-приложения, но это не делает их менее мощными. Можно улучшать внешний вид таких приложений, применяя цвета к тексту. Есть библиотеки, которые помогут вам с этим: Colorama и Colored. Фреймворки Docopt, Argarse и Click упростят вам процесс создания приложений.

Шаг 2 — Создание простого сайта

Создать простой сайт при помощи Python и Flask станет для вас легкой прогулкой. Вам просто нужно написать 5 строчек кода, и всё.

  1. Сначала импортируем класс Flask из фреймворка Flask.
  2. Создаем переменную, в которой будем хранить экземпляр класса flask, иными словами, ваше приложение Flask. Параметр определяет название вашего приложения. По умолчанию это .
  3. Маршрут, как мы уже сказали, это путь или URL, по которому вы можете посмотреть свой сайт. В данном случае он настроен на корневую папку.
  4. Теперь создаем функцию. Она определяет, что будет делать наша страница. Пока просто напечатаем “hello world”.
  5. Запускаем скрипт. Если название вашего приложения , скрипт сработает, вот и всё. Но если вы вызываете скрипт из другой части кода, наш параметр из второго пункта использует имя нашего файла, , и следовательно скрипт не сработает.
#Import dependenciesfrom flask import Flask#Create instance of Flask Appapp = Flask(__name__)#Define Route@app.route("/")#Contentdef home():    return("Home Page")#Running and Controlling the scriptif (__name__ =="__main__"):    app.run(debug=True)

Вот вы и создали свою первую веб-страницу

Всё ещё не разобрались с маршрутами? Следующий фрагмент кода прояснит картину. На всех сайтах есть страница О нас, верно? Давайте и на нашем создадим такую же. У нас есть 2 разных маршрута для 2 разных страниц.

#Import dependenciesfrom flask import Flask#Create instance of Flask Appapp = Flask(__name__)#Define Route and Contant of that page@app.route("/")def home():    return("Home Page")#Define 2nd Route and Content@app.route("/about")def about():    return("About Me")#Running and Controlling the scriptif (__name__ =="__main__"):    app.run(debug=True)

Что выводит второй маршрут

Дерево решений для простой задачи

Начнём с проблемы простой бинарной классификации, изображённой на диаграмме.

Наш набор данных имеет всего два параметра (две заданные переменные), x1 и x2, а также 6 образцов, несущих эти параметры. Образцы разделены метками на два класса. Хотя это простая задача, линейно классы разделить невозможно. Это означает, что мы не можем нарисовать на предложенной плоскости прямую линию, которая отделит один класс от другого.

Blockchain Engineer R&D

LATOKEN, Москва, от 4000 до 6000 $

tproger.ru

Вакансии на tproger.ru

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

Мы используем Scikit-Learn, чтобы создать дерево решений и обучить () его, используя наши данные.

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

Можно проверить точность предсказаний нашей модели:

Разумеется, мы получим точность 100 %, так как сообщили модели правильные ответы () и не ограничивали глубину дерева. Но следует помнить, что подобная подгонка дерева решений под тренировочные данные может спровоцировать переобучение модели.

Установка python на android

Следующий вопрос – как именно python для андроид получает возможность запускать наши приложения на девайсе. Разработка на python для android с инструментом python for android упрощает работу тем, что данный инструмент создает на вашем устройстве дистрибутив – специальную зашифрованную папку, которая содержит все необходимые для проекта данные.

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

Для удобной разработки и, собственно, разработки непосредственно с девайса, нам понадобится интерпретатор Python. Качественное программирование на python для андроид требует установки правильного интерпретатора.

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

Такой скрипт может быть написан заранее и размещен на удобном источнике (в том числе на карте памяти) и запущен в удобное для пользователя время. Существует множество интерпретаторов, потому чтобы найти свой, понадобится какое-то время.

Редакторы и IDE, разработанные для Python

PyCharm

Тип: IDE
Сайт: https://www.jetbrains.com/pycharm/

Одной из лучших полнофункциональных IDE, предназначенных именно для Python, является PyCharm. Существует как бесплатный open-source (Community), так и платный (Professional) варианты IDE. PyCharm доступен на Windows, Mac OS X и Linux.

PyCharm «из коробки» поддерживает разработку на Python напрямую — откройте новый файл и начинайте писать код. Вы можете запускать и отлаживать код прямо из PyCharm. Кроме того, в IDE есть поддержка проектов и системы управления версиями.

Преимущества: это среда разработки для Python с поддержкой всего и вся и хорошим коммьюнити. В ней «из коробки» можно редактировать, запускать и отлаживать Python-код.

Недостатки: PyCharm может медленно загружаться, а настройки по умолчанию, возможно, придётся подкорректировать для существующих проектов.

Spyder

Тип: IDE
Сайт: https://github.com/spyder-ide/spyder

Spyder — open-source IDE для Python, оптимизированная для data science. Spyder идёт в комплекте с менеджером пакетов Anaconda, поэтому вполне возможно, что он у вас уже установлен.

Что в Spyder интересно, так это то, что его целевой аудиторией являются data scientist’ы, использующие Python. Например, Spyder хорошо взаимодействует с такими библиотеками для data science, как SciPy, NumPy и Matplotlib.

Spyder обладает той функциональностью, которую вы можете ожидать от стандартной IDE, вроде редактора кода с подсветкой синтаксиса, автодополнения кода и даже встроенного обозревателя документации.

Отличительной особенностью Spyder является наличие проводника переменных. Он позволяет просмотреть значения переменных в форме таблицы прямо внутри IDE. Также хорошо работает интеграция с IPython/Jupyter.

Про Spyder можно сказать, что он более «приземлённый», чем другие IDE. Его можно рассматривать как инструмент для определённой цели, а не как основную среду разработки. Что в нём хорошо, так это, что он бесплатный, open-source и доступный на Windows, macOS и Linux.

Преимущества: вы data scientist, который пользуется Anaconda.

Недостатки: более опытные разработчики на Python могут найти Spyder недостаточно функциональным для повседневной работы и сделают свой выбор в пользу более функциональной IDE или редактора.

Thonny

Тип: IDE
Сайт: http://thonny.org/

Thonny называют IDE для новичков. Написанный и поддерживаемый Институтом информатики Тартуского университета в Эстонии, Thonny доступен на всех основных платформах.

По умолчанию Tonny устанавливается с версией Python, идущей в комплекте, поэтому вам  не понадобится устанавливать ещё что-нибудь. Продвинутым пользователям, возможно, придётся изменить эту настройку, чтобы IDE нашла и использовала уже установленные библиотеки.

Преимущества: вы начинающий Python-программист и вам нужна IDE, с которой можно сразу идти в бой.

Недостатки: продвинутым пользователям будет недостаточно функциональности, а встроенный интерпретатор они заменят. Кроме  того, учитывая новизну IDE, могут возникнуть проблемы, решения которых на данный момент нет.

Заключение

Ваша программа уже глаголет устами хотя бы одного из установленных синтезаторов? Поздравляю! Как видите, это не слишком сложно и «в выигрыше даже начинающий». Еще больше радуют перспективы использования TTS в ваших проектах. Все, что можно вывести как текст, можно и озвучить.

Представьте утилиту, которая при внезапной проблеме с экраном телефона или монитора сориентирует пользователя по речевым подсказкам, поможет спокойно сохранить данные и штатно завершить работу. Или как насчет прослушивания входящей почты, когда вы не за монитором? Напишите, когда, на ваш взгляд, TTS полезна, а когда только раздражает. Говорящая программа с какими функциями пригодилась бы вам?

Ссылка на основную публикацию