Изменение голоса в linux
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Real Time Microphone Voice Changer App. Works with On-Line Games and VideoConferences!

Debian/Ubuntu: sudo apt-get install sox python3-pyqt5
Centos/RedHat: sudo yum install python3-qt5 sox
Arch: sudo pacman -S python-pyqt5 sox
Run: pyvoicechanger.py
- Python 3.6+
- PyQt 5.10+
- Sox (Linux package).
- Working Microphone, Speakers and Sound System.
- Working Sound Loopback Kernel Module
This command MUST be successful, Sound Loopback Kernel Module MUST be up & running, if it fails you dont have Sound Loopback Kernel Module up & running, if it says modprobe: FATAL: Module aloop not found . it failed, please check your Distro Documentation about Sound Loopback Kernel Module to fix it, sometimes you need to enable it, or recompile it, or reinstall it, or whatever (that is not my Bug, complain to your Distro).
Check your Python version executing python —version , it should say 3.6.0 or higher.
About
Real Time Microphone Voice Changer Python 3.6+ App. Works with On-Line Games and VideoConferences!
RHVoice — синтезатор речи для Linux. Учим Orca говорить красиво
Это моя старая статья, которую я перенес из своего первого блога. В этой статье я расскажу как настроить экранный диктор Orca в Linux Mint 17 MATE и установить синтезатор русской речи RHVoice. Этот же рецепт подойдет и для Ubuntu. Честно говоря, пока я ограничился только рабочим столом MATE. GNOME 3 по мне очень тяжеловат, тем более вкупе с экранным диктором.
Итак, приступим. Можно начинать с разных этапов: сперва включить Orca, а потом установить синтезатор или сделать все наоборот. Пойдем по второму пути. Сперва установим синтезатор, а затем включим Orca и настроим ее.
Сейчас я приведу набор команд, которые скачают необходимые файлы для установки синтезатора соберут и установят его. Вначале просто создается папка на рабочем столе в которой будет происходить весь процесс.
Сборка и установка RHVoice.
- устанавливаем программы необходимые для сборки
- заходим в скачанную папку, собираем и устанавливаем
После команды scons начнется процесс сборки, он довольно долгий. Но результат должен выглядеть следующим образом.
Голос установлен. Теперь необходимо настроить операционную систему, чтобы она могла без проблем работать с синтезатором.
- внесем в него следующие строчки
После внесения строк жмем Ctrl+X, подтверждаем изменения написав Y, затем Enter и ещё раз Enter.
Теперь внесем изменения в ещё один конфигурационный файл.
- ищем строки где добавляются модули (строка начинается с #AddModule ) речевых синтезаторов и добавляем новый модуль
Настройка экранного диктора Orca.
Теперь необходимо сделать так чтобы Orca запускалась при старте системы. Жмем «Menu» -> «Центр управления» -> «Вспомогательные технологии» и ставим галочку напротив «Включить вспомогательные технологии».
Далее жмем кнопку «Предпочтительные приложения», во вкладке «Вспомогательные технологии» ставим галочку под Orca напротив «Запускать при входе».
Осталось только перезагрузить компьютер и выбрать RHVoice в настройках Orca. После перезагрузки Orca начнет говорить довольно мерзким голосом. Ее можно настроить из терминала, но удобнее это будет сделать в окне настроек. Чтобы вызвать окно настроек необходимо для начала отключить дополнительную цифровую клавиатуру клавишей NumLock, а потом нажать комбинацию 0+Пробел, где 0 — цифра на дополнительной цифровой клавиатуре. Появится вот такое окно, где во вкладке «Речь» можно будет выбрать синтезатор и голоса к нему.
У синтезатора есть целых четыре русских голоса Alexandr, Elena, Irina и Anna. Мне больше всего понравился голос Anna.
А в этом видео можно послушать голоса.
Linux Mint Forums
Welcome to the Linux Mint forums!
Linux & Voice Changers
Linux & Voice Changers
Post by Veerstryngh Thynner » Tue Sep 29, 2015 8:41 am
Is there are any decent voice changing software available for Linux, I wonder? I’m a great fan of Audacity — but it doesn’t make the grade in this department, I’m afraid.
I have heard of Wine, of course (although never used it). But of WineASIO I hadn’t yet — until someone on another forum suggested it. Now, for some software not yet available in Linux — or not conspicuous in the Mint repositories — I sometimes resort to an auxiliary Windows 7 laptop. I have a voice changer in there (MorphVox Pro), but never got it working for me. And to my understanding, WineASIO runs Windows programs in Linux.
That’s what I currently have in mind for MorphVox Pro. Hence, I’d like to hear of those with experience of the same (or similar) in WineASIO. And some guidance on how best to migrate MorphVox from my auxiliary Windows laptop to my Mint desktop, if possible, would be very welcome, too: the original MV installation disc long gone.
Re: Linux & Voice Changers
Post by 1.618 » Tue Sep 29, 2015 11:43 am
Re: Linux & Voice Changers
Post by Veerstryngh Thynner » Tue Sep 29, 2015 12:41 pm
Because neither guitars nor guitar effects bear any relation to this.
It’s about changing the human voice (mine) to other human voices (male as well as female). And where other voice changers are going algorithmic routes, MorphVox Pro’s voices have been taken from real people, uniquely. So it might be worthwhile to give MorphVox Pro another go in Linux.
MorphVox Pro has been on my Windows 7 laptop for at least a year (if not more). I’d like to its voice banks for small virtual vocal ensembles and somewhat larger choirs. Or for a first impression of how a vocal arrangement may sound in real life.
On the basis of an audio profile drawn up by the application itself, MVP should work, theoretically. And with a good quality mic and (recommended) some pre-amp it ought to (even on Windoze). Only it doesn’t. And never ever has. So the thought now is to «transplant» MVP — from Windows 7, on the laptop, to KDE Mint on the (much more powerful) desktop — and run the thing in WineASIO. Maybe I’ll get some result this way.
That’s what I’m hoping for anyway.
Re: Linux & Voice Changers
Post by Nauticus » Tue Sep 29, 2015 5:09 pm
Hi,
I’ve not had any experience with voice morphing software — BUT — I do use Wine.
Wine creates a separate partition on the HDD and appears to install a sort of «Windows» mini operating system to run a Windows program.
Wine is not a Windows Interpreter — it is a mini operating system in it’s own right and I use it for a desktop publishing program that is not available for Linux. (I’ve been using this program for some 25 years and have FAR to many documents to be able to change to a Linux DPP.
There is an accessory for Wine (can’t think of its name right now and my Linux PC is misbehaving at present). Find the loading .exe file on a CD/DVD an select «Open with Wine». It should install exactly the same as Windows. Find the link in the menu and you can have an Icon on the desktop, too.
I believe there are a few quirks that could prevent a smooth installation but I’ve not seen them.
Pocketsphinx. Распознавание речи и голосовое управление в Linux
— Всё в порядке, Лёня?
Динамики отрегулированы на максимум, я морщусь, отвечаю:
— Да. Тише звук.
— Звук — тише, — соглашается «Виндоус-Хоум», — тише, тише…
— Хватит, Вика
С.Лукьяненко, «Лабиринт отражений»
Введение
В данной статье я не буду касаться Julius, поскольку гайдов по его использованию (в том числе и в Рунете) хватает. Речь будет идти о CMU Sphinx.
Описание и установка
Не забудьте после установки выполнить:
Для работы с /dev/dsp установим согласно FAQ пакет oss-compat.
Базовое использование
/sphinx.
Синтаксис нашей команды таков:
-argflie: имя файла в текущей директории, содержащего все аргументы.
stderr для удобства перенаправим в файл.
Содержимое argfile:
-hmm: путь к каталогу, содержащему файлы акустической модели (шаблоны отдельных звуков).
-lm: путь к файлу триграммной языковой модели (можете почитать здесь).
-dict: путь к файлу словаря произношения.
-cepdir: путь к каталогу со звуковыми файлами. Будьте внимательны: если вы вносите -cepdir в файл аргументов, то сокращенный путь
/sphinx обрабатывается неправильно: приходится писать полный путь. Если вы будете прописывать аргумент после команды, то можете использовать сокращенный путь.
-ctl: файл с именами обрабатываемых файлов. Файл goforward.raw мы возьмем из комплекта исходников pocketsphinx (там есть еще пару файлов *.raw — можете распознать и их).
-cepext: расширение обрабатываемых файлов
-adcin: указатель принадлежности обрабатываемого файла к raw.
-hyp: имя файла, в который будет выведен распознанный текст.
Аргументы с путями к файлам моделей указывать обязательно. Помните, что многие параметры заданы по умолчанию (смотрите stderr). Поэтому для работы с файлом *.raw необходимо принудительно указать расширение, иначе будет использован параметр по умолчанию — расширение .mfc (а таких файлов у нас в базовом примере, естественно, нету — будут сыпаться ошибки).
В результате исполнения у нас в файле outname будет следующее содержимое:
Параллельно можете посмотреть, откомпилировать и запустить в каталоге с файлом goforward.raw программку аналогичного назначения на C (пример от разработчиков).
Для проверки на своих примерах я решил не мудрствовать и воспользовался sox (проверьте, установлен ли этот пакет у вас).
Писать звук будем следующим образом (можете почитать man sox ):
— для raw
Окончание записи по Ctrl+C .
У меня sox при этом ругался на невозможность использования частоты дискретизации: can’t set sample rate 16000; using 48000 . Учтите: нагло лжет — на самом деле все в порядке.
Я писал и распознавал raw и wav на различных примерах из подключенных словарей — все распознавалось вполне приемлимо.
Адаптация звуковой модели
Скачиваем по первой ссылке предлагаемые файлы в отдельную директорию, в которой и будем работать.
Теперь надиктуем предложения из файла arctic20.txt по образцу: у вас должно получиться двадцать файлов, названных по порядку согласно схеме arctic_0001.wav . arctic_0020.wav .
Чтобы упростить запись, воспользуемся предложенным скриптом:
Соответственно, чтобы прослушать полученное, выполним:
Скопируем акустическую модель (с которой мы и работали) из /usr/local/share/pocketsphinx/model/hmm/en_US/hub4wsj_sc_8k в нашу рабочую директорию.
Теперь создадим файлы акустических особенностей (напоминаю: работаем в директории с файлами *.wav).
В результате получаем файлы *.mfc.
Скачиваем экстра-пак (89,0 МБ); файл под названием mixture_weights из него, расположенный в pocketsphinx-extra/model/hmm/en_US/hub4_wsj_sc_3s_8k.cd_semi_5000 помещаем в каталог с акустической моделью.
Также необходимо конвертировать mdef-файл акустической модели в текстовый формат:
Теперь, согласно терминологии гайда по адаптации, соберем накопленные данные. Скопируем утилиту bw из /usr/local/libexec/sphinxtrain/bw в рабочий каталог (перед этим не забудьте установить sphinxtrain!).
Запускаем и видим:
SYSTEM_ERROR: «corpus.c», line 339: Unable to open arctic20.fileids for reading: No such file or directory
Очевидно, правая рука у разработчиков не ведает, что творит левая (про неактуальность части документации я уже не говорю).
Переименовываем в рабочем каталоге файл arctic20.listoffiles в arctic20.fileids
Теперь все работает.
Произведем MLLR-адаптацию (эффективна для ограниченного объема данных в модели):
Эта команда создаст файл адаптационных данных mllr_matrix .
Теперь при распознавании с адаптированной моделью можно добавлять параметр -mllr /path/to/mllr_matrix .
Параллельно произведем другой метод адаптации: MAP.
Сделаем копию модели:
И произведем MAP-адаптацию:
Теперь создадим sendump файл, отличающийся меньшим размером:
Тестирование адаптации
Проверяем (помните, что адаптация не приведет к стопроцентно верному результату: адаптированные модели будут точно так же ошибаться; плюс в том, что они будут делать это реже. Мои вполне наглядные записи были сделаны далеко не с первой попытки: было достаточно записей, где ошибались все модели):
1. Распознавание с помощью базовой модели:
2. Распознавание с помощью модели с MLLR-адаптацией: при указании параметром -mllr пути к моей матрице происходила ошибка сегментирования (копаться я не стал). При распознавании без этой опции результат полностью идентичен результату оригинальной модели.
Впрочем, в мануале заявлено, что MLLR-адаптация лучше всего подходит для непрерывной модели (т.е. для Sphinx4).
3. Распознавание с помощью модели с MAP-адаптацией:
Как можно убедиться, результат полностью идентичен записи. Адаптация реально работает!
Русский язык в Pocketsphinx
Скачаем отсюда русские модели, созданные на voxforge. На разнообразие моделей можно посмотреть здесь и просто в интернетах.
Реализовывать пример голосового управления компьютером мы будем на русском, а значит нам нужны собственная языковая модель и собственный словарь (вероятнее всего, части наших слов в распространенных примерах не будет).
Создание собственной статической языковой модели
Далее создаем словарный файл:
Создаем языковую модель в arpa-формате:
И создаем DMP-модель.
Создание собственного словаря
Тащим с гитхаба утилиты:
Переходим в каталог ./yourdir/text2dict и создаем там текстовый файл my_dictionary с вашим списком слов (каждое новое слово — с нового абзаца).
И вот ваш словарь создан.
Теперь пробуем распознавать слова, присутствующие в словаре (благо, в нашем примере их немного). Не забудьте указать в аргументах собственную языковую модель и словарь — все должно работать. При желании можно произвести адаптацию акустической модели (сразу предупреждаю: при использовании утилиты bw в процессе адаптации для большинства акустических моделей опция -svspec не нужна ).
Использование JavaScript Grammar File вместо статической языковой модели
«|» обозначает условие выбора. Т.е. мы можем сказать «тише» или «закрыть окно». Правда, по сравнению с использованием языковой модели есть один минус: говорить нужно гораздо членораздельнее.
Созданный jsgf-файл указываем с параметром -jsgf (параметр -lm в таком случае не нужен).
Реализация голосового управления
Моей целью не было реализовать крутой интерфейс управления: здесь все будет очень примитивно (если есть желание и возможность, можете посмотреть на заброшенный проект Gnome Voice Control).
Действовать будем следующим образом:
1. Пишем команду, распознаем её.
2. Передаем распознанный текст в файл, в соответствии с ним выполняем команду.
В качестве тестовых команд будем использовать уменьшение и увеличение громкости звука.
Внимательно почитав мануал к sox, я решил оканчивать запись по истечении секунды тишины с порогом тишины в 3.8% (порог явно является сугубо индивидуальным значением и зависит от вашего микрофона и окружающей обстановки).
К сожалению, я не нашел в pocketsphinx_batch параметр вывода только для распознанных слов, поэтому я воспользуюсь инструментом sed :
Эта конструкция удалит из строки вида «наша команда (audio -4023)» пробел перед открывающей скобкой, её саму и все последующее содержимое. В результате мы получим строку вида «наша команда», что нам и нужно.
Вот сам скрипт:
Скрипт в ответ на команды «тише» или «громче» выполняет соответствующие действия с сигнализацией через notify-send.
К сожалению, работать он будет только при запуске из терминала (иначе звук не пишется). Впрочем, представление о голосовом управлении он дает (возможно, вы предложите лучший метод).






