Переход с Mac на Windows 10 - интеграция службы преобразования текста в речь

1054
Screenack

Тесная интеграция Apple с POSIX-совместимыми путями к файлам и интерфейсом командной строки, а также их исторически сильными аппаратными и производственными стандартами привели меня на платформу Mac в течение многих лет. Тем не менее, недавнее разочарование и слабая ориентация Apple на MacOS и их аппаратное обеспечение, а также Lenovo X1 Yoga 2-го поколения привлекли мое внимание.

Однако переключение ОС имеет две, казалось бы, непреодолимые области, которые меня беспокоят. Этот пост посвящен интеграции ОС Text-to-Speech.

Я просмотрел документацию Microsoft Narrator, которая мне показалась бесполезной. Конечно, мой вариант использования не связан с нарушениями зрения. Один из моих вариантов использования для рассказчика - читать только выбранный текст, как я обрисовал в общих чертах ниже. Например, в этом посте SuperUser 2012 года у спрашивающего возникла та же проблема, без удовлетворительного ответа.

Я также хотел бы подчеркнуть, что «копирование и вставка в стороннее приложение TTS» является неудовлетворительным. На моем Mac я могу предоставить вход и получить файл MP3 TTS без вмешательства пользователя, для моего сценария № 1 ниже. Я выполняю это только с помощью инструментов с открытым исходным кодом, за исключением команды «сказать».

Я давно пользуюсь преимуществами интеграции текста в речь Mac. Я использую его тремя конкретными способами, хотя комбинация ниже определяет 90% моих вариантов использования.

  1. Преобразование переформатированного текста из электронных писем, которые я хотел бы прочитать мне позже
    • Мой текущий рабочий процесс на Mac: я копирую источник из своей электронной почты, использую скрипт vim, который удаляет HTML, оставляя текст, который я хочу прочитать. Например, этот скрипт вставляет [slnc 2000]команду «тишины», которая помогает мне идентифицировать маркеры абзаца, когда я слушаю прочитанный текст.
    • После завершения разметки текста я передаю форматированный текст с помощью команды «say», которая создает AIFF для преобразования текста в речь.
    • Используя lame, я затем конвертирую это в mp3 и, используя dropcaster, помещаю mp3 в статическое общедоступное место, где мой клиент подкаста может получить его.
    • Благодаря bash-скриптам, вышеупомянутое занимает 5 секунд моего времени. В последний раз, когда я переключался с Mac на Windows, мне очень не хватало этого. В прошлом я пользовался программным обеспечением TTA от ReadAloud, но всегда был более хитрым, чем описанный выше.
  2. Живая корректура электронных писем или документов, которые я создаю. Я легче нахожу ошибки, когда мой Mac читает мне свой письменный текст.
    • Да, я могу скопировать и вставить в Блокнот, но это неуклюже. Глядя на интерфейс Narrator, я обнаружил, что очень трудно понять, как заставить Narrator читать выбранный текст в приложениях, например, Outlook, Firefox, Word и так далее.
  3. Использование TTS для чтения выбранного текста браузера в длинных статьях, которые я хотел бы услышать, пока выполняю не требующие внимания задачи.
    • Это похоже на # 2, однако, я мог бы решить, что стоит создать файл для подкаста, если прочитанный текст привлечет мое внимание, и я перейду к процессу # 1.
    • Firefox имеет режим «чтения», который в значительной степени помогает и хорошо работает под Windows.

Мои вопросы:

  1. Существует ли эквивалентный способ передачи отформатированного текстового файла на Win10 в двоичный файл MS для обработки, аналогичный команде «say» на Mac? Я вижу Docker изображения, которые TTS конкретных, думал, что кажется более запутаны.
  2. Как родной способ заставить Windows 10 Narrator читать выбранный текст так же просто, как выделять текст в любом приложении, вызывать команду клавиатуры и Win10 выполнять службы TTS?

Я открыт, их могут быть разные, но похожие способы сделать выше. «Скопируйте и вставьте в блокнот», однако, это также клудж. Я надеюсь, что MS выполнила свою домашнюю работу по обеспечению доступности и развертывание так же, как Apple.


Некоторые примечания к себе, поскольку я продолжаю исследовать этот вопрос

  • Существует несколько пакетов Python, которые включают TTS в скрипте Python. Сначала это выглядело многообещающе, но есть несколько фатальных проблем, сосредоточенных на методах python, описанных здесь: https://pythonprogramminglanguage.com/text-to-speech/
    • У меня были проблемы с установкой pyttsx. Я установил brew py2.7.13 и py3.6.1 и, используя pip3 или pip, не смог успешно установить ни одну из версий. Исходный pyttsx - это py2, с вилкой для py3. Это очень плохо, так как дизайн требует, чтобы модуль python использовал собственный движок TTS. Если бы pyttsx работал на python3, и проект был более активным, я был бы более склонен устранять неисправности модуля. Вы можете прочитать мои комментарии к предложенному ответу здесь .
    • pyTTS использует Google TTS. Это звучит хорошо, но обязательно требует подключения к интернету. Так как я хочу соответствовать встроенным возможностям TTS, эта опция будет включена.
  • Есть опция докера, https://github.com/parente/espeakbox прекрасно работает, но голос - это то, где TTS был 6+ лет назад. Хотя я уважаю желание автора создать эффективный движок TTS, мне нравится родной TTS Mac, и я хотел бы быть в одном ряду с этим.
    • Играя с другими не родными опциями TTS, такими как Merlin или Festival, качество TTS не соответствует стандарту TTS для Mac или Windows.
  • Согласно предложению Лю Вон Фука, автоматизировать родной Windows TTS действительно легко, согласно этой странице: https://www.pdq.com/blog/powershell-text-to-speech-examples/ . Я подхожу ближе к решению.
2
Я сильно опирался на функции TTS от Apple в колледже. Спустя 9 лет работы с ОС Windows, я все еще очень разочарован в подходе MS и реализации их речевых сервисов. Я до сих пор не нашел способ заставить Рассказчик читать выбранный текст, он всегда дает сбой (Win 8/10) и НЕ универсален для приложений, содержащих TEXT. Даже с новым API для Windows они значительно отстают от Apple в этой функции доступности. -PS: взгляд читателя FF действительно был спасительной грацией, которую я начал использовать довольно часто. Все страницы не совместимы, к сожалению. Buffalo 6 лет назад 0

1 ответ на вопрос

3
phuclv

MS Office поддерживал преобразование текста в речь задолго до его интеграции в Windows (начиная с Vista). В результате вы всегда можете открыть MS Word и прочитать документ за вас. Просто добавьте Speakкнопку на ленту / панель быстрого доступа, затем выберите текст и щелкните по нему, или назначьте ярлык для функции разговора

Говорить меню

Рассказчик также поддерживает эту функцию. Вам просто нужно проверить список ярлыков

Ctrl + Shift + Spacebar Read the entire selected window Ctrl + Alt + Spacebar Read the items that are selected in the current window Insert + Ctrl + G Read a description of the items that appear next to the currently selected element Ctrl Stop Narrator from reading text Insert + F3 Read the current character Insert + F4 Read the current word Insert + F5 Read the current line Insert + F6 Read the current paragraph Insert + F7 Read the current page Insert + F8 Read the current document  Caps Lock + H Read document Caps Lock + U Read next page Caps Lock + Ctrl + U Read current page Caps Lock + Shift + U Read previous page Caps Lock + I Read next paragraph Caps Lock + Ctrl + I Read current paragraph Caps Lock + Shift + I Read previous paragraph Caps Lock + O Read next line Caps Lock + Ctrl + O Read current line Caps Lock + Shift + O Read previous line Caps Lock + P Read next word Caps Lock + Ctrl + P Read current word Caps Lock + Shift + P Read previous word  Swipe up with three fingers Read current window Swipe down with three fingers Start reading explorable text 

Слушайте текст, прочитанный вслух с Рассказчиком

Как заставить Windows 8 Narrator читать только то, что я специально ему говорю, чтобы читать и оставаться абсолютно безмолвным в противном случае?

Windows 10 поддерживает режим сканирования, чтобы помочь вам быстрее . Это может быть переключено Caps lock+Spacebar


Однако в MS Office не работает Narrator, поэтому вам нужно скопировать текст во внешнее приложение. Это может быть достигнуто с помощью AutoHotkey. Нужно будет скопировать выделенный текст и передать его в приведенный ниже скрипт VBS.

Dim text, sapi Set text = WScript.Arguments(0) Set sapi = CreateObject("sapi.spvoice") sapi.Speak text 

Трюки с глупыми выродками: как заставить компьютер разговаривать с вами

Я не думаю, что есть что-то другое при чтении веб-страницы по сравнению с простым текстом. Но отметьте это. Как использовать рассказчик для чтения содержимого веб-страниц?

Некоторые другие приложения TTS для Windows можно найти здесь


Вывод текста для чтения может быть записан с тоннами программного обеспечения там. Если вы не хотите его слышать и вам просто нужно сохранить выходной файл, используйте любое программное обеспечение для смешивания потоков, такое как GraphStudioNext (входит в пакет кодеков K-lite) и перенаправьте выходной поток в файл; преобразовать в mp3 перед этим, если это необходимо

GraphStudioNext

Все вышеперечисленное можно автоматизировать с помощью скрипта. Забудьте о командном файле, PowerShell очень мощный и может делать все, что можно сделать с помощью Bash. Он может вырезать формат из текста и редактировать его, так что нет необходимости в vimscript. Там также VIM для Windows. Или при необходимости вы всегда можете установить bash на Windows или Cygwin. Автоматизация графического интерфейса также может быть выполнена с помощью AutoHotKey.

Я обновлю свой основной вопрос, чтобы отразить, что я прошел через документацию MS Narrator. Их руководство не помогает мне надежно работать с TTS. Я не одинок; https://superuser.com/questions/485318/how-to-tell-windows-8-narrator-to-read-only-what-i-specifically-tell-it-to-read. В Firefox, если я включаю «Повествование» и выбираю произвольный текст, например любой текст в этом URL, ничего не говорится, как указывает указанная мною ссылка. Это старый пост. Я пытался только сейчас, но безуспешно для "CTL-ALT-пробел" и выбранного в настоящее время текста. Копировать и вставлять в стороннее приложение неудовлетворительно. Screenack 6 лет назад 1
Вы можете написать скрипт, чтобы скопировать текст и легко передать его в движок TTS, а также настроить ярлык для запуска этого скрипта. phuclv 6 лет назад 0
Да, я вижу это сейчас. Я также обновил свои заметки. Screenack 6 лет назад 0

Похожие вопросы