Я часто использую функцию Mac Text to Speech. В разделе «Настройки»> «Речь»> «Текст в речь» я также установил «Ключ» для быстрого доступа.
Поскольку я также хочу, чтобы Text to Speech читал немецкий язык, а OS Lion предлагает голоса для других языков, я хотел бы иметь второй ярлык для немецкого языка.
Кто-нибудь знает, где я могу установить это? Или это единственный способ постоянно менять системный голос, прежде чем я захочу, чтобы немецкий текст читался? (А потом сбросить голос Алексею для английских текстов)? А как насчет французского текста?
Какие варианты существуют для этой общей проблемы?
Вы можете использовать say
команду с другими голосами OS X, чтобы получить разные языки. Используйте Thomas
голос, чтобы получить французское произношение или Yannick
для немецкого языка.
В этом примере я буду использовать Thomas и French, поскольку это то, что я знаю, но это Yannick
должно работать и для немецкого текста.
Попробуйте выполнить следующую команду в Applications > Utilities > Terminal.app :
say -v Thomas "Bonjour. Je m'appelle Thomas."
Если это приемлемо, вы можете обернуть say
команду в службу Automator; что мы будем делать дальше.
Чтобы создать службу автоматизатора:
Скопируйте и вставьте AppleScript ниже:
on run {input, parameters}
do shell script "say -v Thomas " & (quoted form of (input as string))
return input
end run
Чтобы воспользоваться услугой:
И вуаля ! Доступны другие языки и голоса .
Этот подход 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.
Вид старого сообщения, и, возможно, вы уже нашли решение. Один из способов упростить это с 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%, а вентиляторы ускоряются. Не уверен, что есть решение для этого.
Я написал для этого инструмент, просто перейдите по ссылке:
Вы также можете установить системный голос на французский.
Перейдите в « Системные настройки» > «Диктовка и речь» > «Преобразование текста в речь » и установите, Thomas
например, системный голос.
Затем:
Существует также возможность установить ярлык, поэтому вы можете просто выбрать любой текст и нажать ярлык, чтобы начать говорить по-французски.
Запустите Automator.app
Создать новую службу
Добавить действие « Произнести текст»
Выберите Саманту
Сохраните сервис как SpeakSamantha
Настройте сочетание клавиш для службы
Откройте системные настройки
Выберите клавиатуру
Выберите ярлыки
Выберите Услуги
Создайте ярлык, Command + Alt + 1 для SpeakSamantha
Чтобы воспользоваться услугой
Откройте браузер
Выберите некоторые английские тексты
Нажмите Command + Alt + 1
Чтобы остановить речь (Способ 1)
Чтобы остановить речь (Способ 2)
Щелкните значок вращающейся шестеренки в строке меню.
Нажмите ⨂
Чтобы добавить второй голос
Повторите описанный выше процесс, добавив следующие незначительные изменения.
Выберите второй голос, например Анна , немецкий голос
Сохраните сервис как SpeakAnna
Создайте сочетание клавиш Command + Alt + 2 для SpeakAnna.
Известная небольшая проблема: не нажимайте ярлык снова, пока вы не закончите речь или речь не закончится. В противном случае вы получите сообщение об ошибке, подобное следующему.
Использование пользовательского сервиса со стандартным Speak Text
действием для произнесения выделенного текста определенным альтернативным голосом имеет один существенный недостаток, как подробно описано в ответе Mikofox :
Вы не можете легко остановить воспроизведение, как со встроенной службой TTS, просто нажав сочетание клавиш еще раз.
Есть два решения :
Раскрытие информации: я создал готовые сервисы и voices
интерфейс командной строки .
Вместо этого создайте настраиваемую службу с Run Shell Script
действием , в котором вы используете say
CLI , что позволяет реализовать переключатель воспроизведения (остановка речи при вызове во время разговора с предыдущего вызова).
В качестве альтернативы создайте службу, которая переключает голос по умолчанию по запросу , что позволит вам использовать встроенную службу TTS с функцией переключения воспроизведения.
voices
CLI : Простая реализация сервиса с переключателем воспроизведения :
Как уже говорилось, это не будет учитывать пользовательские скорости речи, настроенные для выбранного голоса.
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
.
echo 'Guten Tag. Wie geht es?' | pbcopy && pbpaste | say -v Anna
без холма