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

Я часто использую функцию Mac Text to Speech. В разделе «Настройки»> «Речь»> «Текст в речь» я также установил «Ключ» для быстрого доступа.

Поскольку я также хочу, чтобы Text to Speech читал немецкий язык, а OS Lion предлагает голоса для других языков, я хотел бы иметь второй ярлык для немецкого языка.

Кто-нибудь знает, где я могу установить это? Или это единственный способ постоянно менять системный голос, прежде чем я захочу, чтобы немецкий текст читался? (А потом сбросить голос Алексею для английских текстов)? А как насчет французского текста?

Какие варианты существуют для этой общей проблемы?

Вы пробовали функциональность, уже встроенную в OS X?

Ответы (7)

Скажи как…

Вы можете использовать sayкоманду с другими голосами OS X, чтобы получить разные языки. Используйте Thomasголос, чтобы получить французское произношение или Yannickдля немецкого языка.

В этом примере я буду использовать Thomas и French, поскольку это то, что я знаю, но это Yannickдолжно работать и для немецкого текста.

Попробуйте выполнить следующую команду в Applications > Utilities > Terminal.app :

say -v Thomas  "Bonjour. Je m'appelle Thomas."

Если это приемлемо, вы можете обернуть sayкоманду в службу Automator; что мы будем делать дальше.

Сервис Автоматизатор

Чтобы создать службу автоматизатора:

  1. Запустите Automator.app
  2. Создайте новое быстрое действие (ранее Service )
  3. Добавьте действие « Выполнить AppleScript» .
  4. Скопируйте и вставьте AppleScript ниже:

    on run {input, parameters}
        do shell script "say -v Thomas " & (quoted form of (input as string))
        return input
    end run
    
  5. Сохранить сервис как Speak in French

Автоматизатор говорит сервис

Чтобы воспользоваться услугой:

  1. Выделить текст в TextEdit или Safari
  2. Control+ Нажмите, чтобы открыть контекстное меню
  3. Выберите « Сервисы» > «Говорить по-французски».

И вуаля ! Доступны другие языки и голоса .

Этот подход Automator позволяет вам сохранить голос вашего компьютера по умолчанию на предпочитаемом вами языке. При разрешении чтения выделенного текста альтернативным голосом.

Доступные голоса и языки

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

say -v ?

Доступные голоса могут меняться в зависимости от версии macOS. В macOS 10.13 команда возвращает:

Alex                en_US    # Most people recognize me by my voice.
Alice               it_IT    # Salve, mi chiamo Alice e sono una voce italiana.
Alva                sv_SE    # Hej, jag heter Alva. Jag är en svensk röst.
Amelie              fr_CA    # Bonjour, je m’appelle Amelie. Je suis une voix canadienne.
Anna                de_DE    # Hallo, ich heiße Anna und ich bin eine deutsche Stimme.
Carmit              he_IL    # שלום. קוראים לי כרמית, ואני קול בשפה העברית.
Damayanti           id_ID    # Halo, nama saya Damayanti. Saya berbahasa Indonesia.
Daniel              en_GB    # Hello, my name is Daniel. I am a British-English voice.
Diego               es_AR    # Hola, me llamo Diego y soy una voz española.
Ellen               nl_BE    # Hallo, mijn naam is Ellen. Ik ben een Belgische stem.
Fiona               en-scotland # Hello, my name is Fiona. I am a Scottish-English voice.
Fred                en_US    # I sure like being inside this fancy computer
Ioana               ro_RO    # Bună, mă cheamă Ioana . Sunt o voce românească.
Joana               pt_PT    # Olá, chamo-me Joana e dou voz ao português falado em Portugal.
Jorge               es_ES    # Hola, me llamo Jorge y soy una voz española.
Juan                es_MX    # Hola, me llamo Juan y soy una voz mexicana.
Kanya               th_TH    # สวัสดีค่ะ ดิฉันชื่อKanya
Karen               en_AU    # Hello, my name is Karen. I am an Australian-English voice.
Kyoko               ja_JP    # こんにちは、私の名前はKyokoです。日本語の音声をお届けします。
Laura               sk_SK    # Ahoj. Volám sa Laura . Som hlas v slovenskom jazyku.
Lekha               hi_IN    # नमस्कार, मेरा नाम लेखा है. मैं हिन्दी में बोलने वाली आवाज़ हूँ.
Luca                it_IT    # Salve, mi chiamo Luca e sono una voce italiana.
Luciana             pt_BR    # Olá, o meu nome é Luciana e a minha voz corresponde ao português que é falado no Brasil
Maged               ar_SA    # مرحبًا اسمي Maged. أنا عربي من السعودية.
Mariska             hu_HU    # Üdvözlöm! Mariska vagyok. Én vagyok a magyar hang.
Mei-Jia             zh_TW    # 您好,我叫美佳。我說國語。
Melina              el_GR    # Γεια σας, ονομάζομαι Melina. Είμαι μια ελληνική φωνή.
Milena              ru_RU    # Здравствуйте, меня зовут Milena. Я – русский голос системы.
Moira               en_IE    # Hello, my name is Moira. I am an Irish-English voice.
Monica              es_ES    # Hola, me llamo Monica y soy una voz española.
Nora                nb_NO    # Hei, jeg heter Nora. Jeg er en norsk stemme.
Paulina             es_MX    # Hola, me llamo Paulina y soy una voz mexicana.
Samantha            en_US    # Hello, my name is Samantha. I am an American-English voice.
Sara                da_DK    # Hej, jeg hedder Sara. Jeg er en dansk stemme.
Satu                fi_FI    # Hei, minun nimeni on Satu. Olen suomalainen ääni.
Serena              en_GB    # Hello, my name is Serena. I am a British-English voice.
Sin-ji              zh_HK    # 您好,我叫 Sin-ji。我講廣東話。
Tessa               en_ZA    # Hello, my name is Tessa. I am a South African-English voice.
Thomas              fr_FR    # Bonjour, je m’appelle Thomas. Je suis une voix française.
Ting-Ting           zh_CN    # 您好,我叫Ting-Ting。我讲中文普通话。
Tom                 en_US    # Hello, my name is Tom. I am an American-English voice.
Veena               en_IN    # Hello, my name is Veena. I am an Indian-English voice.
Victoria            en_US    # Isn't it nice to have a computer that will talk to you?
Xander              nl_NL    # Hallo, mijn naam is Xander. Ik ben een Nederlandse stem.
Yelda               tr_TR    # Merhaba, benim adım Yelda. Ben Türkçe bir sesim.
Yuna                ko_KR    # 안녕하세요. 제 이름은 Yuna입니다. 저는 한국어 음성입니다.
Yuri                ru_RU    # Здравствуйте, меня зовут Yuri. Я – русский голос системы.
Zosia               pl_PL    # Witaj. Mam na imię Zosia, jestem głosem kobiecym dla języka polskiego.
Zuzana              cs_CZ    # Dobrý den, jmenuji se Zuzana. Jsem český hlas.
Основываясь на моей собственной (очень субъективной) оценке как носителя французского языка, я бы сказал, что голос очень хороший. Я только что присоединился к этому сайту, чтобы проголосовать за ваш ответ!
отличный ответ! Я думаю, что это легко обобщается и на другие языки. Как бы в этом случае звали рассказчиков? :-)
Доступны многие другие голоса и языки ; см. раздел « Другие языки ».
Я обновил ответ; Я полагаю, что служба теперь называется Quick Action в macOS 10.14.
Есть ли способ выбрать голос Siri?
@SuperSpy нет, голос Siri недоступен для общего пользования.

Вид старого сообщения, и, возможно, вы уже нашли решение. Один из способов упростить это с Automator.

Откройте Automator, выберите «Сервис», «Сервис получит выбранный текст», перетащите действие «Произнести текст», чтобы построить рабочий процесс, выберите «Голос» (например, «Голос Райана») Сохранить

Повторяйте разными голосами.

(Список служб можно редактировать/очищать с помощью приложения Service Scrubber и частично в разделе «Системные настройки» > «Клавиатура» > «Сочетания клавиш» > «Службы»)

Редактировать: Теперь, когда у вас есть два или более голоса в меню «Службы», вы можете перейти к: «Системные настройки»> «Клавиатура»> «Сочетания клавиш»> «Сочетания клавиш» и создать новый ярлык для каждого голоса.

Пока на моей машине (OS 10.6.8) это работает так: Системный голос по умолчанию: Ryan (Infovox) Ярлык, выбранный в Speech Pref для Control+S. Это запускает и останавливает текст на английском языке.

Немецкому голосу я назначил Control+Y (голос Yannick из Lion OS). Control+Y запускает немецкую озвучку для выделенного текста на немецком языке; который можно остановить, дважды щелкнув основной ярлык запуска / остановки, здесь Control + S + S. Причина двойного нажатия в том, что однократное нажатие запускает английский голос вместо немецкого. Это лучшее, что я мог придумать до сих пор. Убедитесь, что ярлыки не конфликтуют с другими ярлыками. Вы заметите, что дополнительный ярлык позволяет вам запускать несколько голосовых потоков, переговариваясь друг с другом, плюс системный голос по умолчанию, который повышает активность процессора, но это не проблема, если не забыть остановить разговор, дважды выполнив ярлык для голос по умолчанию.

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

Редактировать 2: я заметил, что при активации вторичного голоса преобразования текста в речь через службу Automator процесс Automator Runner повышает активность процессора до более чем 100%, а вентиляторы ускоряются. Не уверен, что есть решение для этого.

Можете ли вы добавить скриншот вашего рабочего процесса Automator? С Automator это обычно легче понять, чем текстовое описание.

Я написал для этого инструмент, просто перейдите по ссылке:

https://github.com/Fredmf/polyglott

Привет, добро пожаловать в Ask Different. Пожалуйста, объясните немного, что ваш инструмент делает и как. Спасибо!
Спасибо за создание этого. Я нашел это наиболее полезным инструментом на этой странице.

Вы также можете установить системный голос на французский.

Перейдите в « Системные настройки» > «Диктовка и речь» > «Преобразование текста в речь » и установите, Thomasнапример, системный голос.

Затем:

  1. Выберите любой текст в любом приложении
  2. Control+Нажмите, чтобы открыть контекстное меню
  3. Выберите «Речь» > «Начать говорить».

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

  1. Запустите Automator.app

  2. Создать новую службу

  3. Добавить действие « Произнести текст»

  4. Выберите Саманту

  5. Сохраните сервис как SpeakSamantha

Добавить действие «Произнести текст»

Настройте сочетание клавиш для службы

  1. Откройте системные настройки

  2. Выберите клавиатуру

  3. Выберите ярлыки

  4. Выберите Услуги

  5. Создайте ярлык, Command + Alt + 1 для SpeakSamantha

Создать ярлык для SpeakSamantha

Чтобы воспользоваться услугой

  1. Откройте браузер

  2. Выберите некоторые английские тексты

  3. Нажмите Command + Alt + 1

Чтобы остановить речь (Способ 1)

  1. Нажмите Alt + ESC

Чтобы остановить речь (Способ 2)

  1. Щелкните значок вращающейся шестеренки в строке меню.

  2. Нажмите

Щелкните значок вращающейся шестеренки в строке меню.

Чтобы добавить второй голос

  1. Повторите описанный выше процесс, добавив следующие незначительные изменения.

  2. Выберите второй голос, например Анна , немецкий голос

  3. Сохраните сервис как SpeakAnna

  4. Создайте сочетание клавиш Command + Alt + 2 для SpeakAnna.

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

введите описание изображения здесь

Использование пользовательского сервиса со стандартным Speak Textдействием для произнесения выделенного текста определенным альтернативным голосом имеет один существенный недостаток, как подробно описано в ответе Mikofox :

Вы не можете легко остановить воспроизведение, как со встроенной службой TTS, просто нажав сочетание клавиш еще раз.

Есть два решения :

Раскрытие информации: я создал готовые сервисы и voicesинтерфейс командной строки .

  • Вместо этого создайте настраиваемую службу с Run Shell Scriptдействием , в котором вы используете sayCLI , что позволяет реализовать переключатель воспроизведения (остановка речи при вызове во время разговора с предыдущего вызова).

    • См. ниже простую реализацию, которая работает, но она не будет учитывать любые пользовательские скорости речи (слов в минуту), которые вы, возможно, настроили для отдельных голосов через Системные настройки.
    • Решение, учитывающее пользовательские скорости разговора, требует немного больше работы; вы можете найти готовую услугу здесь ; или используйте прямую ссылку для скачивания (будет актуальна).
  • В качестве альтернативы создайте службу, которая переключает голос по умолчанию по запросу , что позволит вам использовать встроенную службу TTS с функцией переключения воспроизведения.

    • Хотя OSX не предлагает программный способ изменить голос по умолчанию, вы можете использовать готовый сервис, созданный на основе voicesCLI :
      следуйте инструкциям здесь или используйте прямую ссылку для скачивания (будет актуальна).

Простая реализация сервиса с переключателем воспроизведения :

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

  • Создайте новый сервис в Automator
  • Оставьте значения по умолчанию (сервис получает текст в любом приложении)
  • Добавьте Run Shell Scriptдействие и вставьте следующее:
#  ------- BEGIN: CUSTOMIZE
 # Specify the voice to speak with.
voice=Vicki
#  ------- END: CUSTOMIZE

  # If `say` is running, we assume that a previous invocation is still speaking  
  # and speaking should be *stopped*.
  # Caveat: This will only work if either the original app from which speaking was initiated is still
  #         frontmost with text selected, or, coincidentally, a now different frontmost app also has
  #         text selected. Otherwise, this service won't be active.
pgrep -x say && { pkill -x say; exit; }

  # Read the text to speak into a variable.
txt=$(</dev/stdin)

  # Speak, using the standard `say` CLI.
say -v "$voice" "$txt"

Как упоминал Mikofox, вы можете создать сервис Automator для озвучивания текста:

В версиях 10.8 и 10.7 есть ошибка, из-за которой ярлыки для служб Automator не всегда работают, пока вы не наведете курсор на меню служб в строке меню.
WorkflowServiceRunner также может использовать более 100 % ЦП при произнесении текста.

Я использовал FastScripts, чтобы назначить ярлык этому скрипту:

try -- if the clipboard is empty, trying to get it results in an error
    set old to the clipboard as record
end try
try
    tell application "System Events" to keystroke "c" using command down
    delay 0.05
    set input to the clipboard
    try
        set the clipboard to old
    end try
    say input using "Kyoko"
end try

Другой вариант — просто запустить что-то вроде pbpaste | say -v kyoko.

Есть ли способ выбрать голос Siri в ваших инструментах? Благодарим вас за создание голосовой утилиты по умолчанию для коммутатора!
Эта техника pbpaste превосходна! Спасибо!echo 'Guten Tag. Wie geht es?' | pbcopy && pbpaste | say -v Anna