Ярлики "Текст до мови" двома мовами


13

Я дуже часто використовую функцію "Текст до мови" в Mac. У розділі Налаштування> Мова> Текст до мови я також встановив "Ключ" для швидкого доступу.

Оскільки я також хочу, щоб текст у мові читав німецьку мову, а ОС Lion пропонує голоси іншими мовами, я хотів би мати другий ярлик для німецької.

Хтось знає, де я можу це встановити? Або єдиний спосіб постійно змінювати системний голос, перш ніж я хочу прочитати німецький текст? (А потім скинути голос до Алекса для англійських текстів)? А як щодо французького тексту?

Які варіанти існують для цієї загальної проблеми?


2
ви спробували функціонал, вже вбудований в OS X?
nohillside

Відповіді:


19

Скажіть, як…

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

У цьому прикладі я буду використовувати Томаса та Французьку мову, оскільки це те, що я знаю, але Yannickмає працювати як для німецького тексту.

Спробуйте виконати таку команду в програмах> Утиліти> Terminal.app :

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

Якщо це прийнятно, ви можете завершити sayкоманду в службі Automator; що ми зробимо далі.

Сервіс автоматизації

Щоб створити службу автоматизації:

  1. Запустіть Automator.app
  2. Створіть нову швидку дію (раніше послуга )
  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. Збережіть послугу як розмову французькою мовою

Сервіс автоматизації скажіть

Щоб скористатися послугою:

  1. Виберіть текст у TextEdit або Safari
  2. Control + Клацніть, щоб відкрити контекстне меню
  3. Виберіть Послуги> Розмовляйте французькою мовою

Et voilà! Доступні інші мови та голоси .

Цей підхід до Автоматизатора дозволяє зберігати голосові налаштування за замовчуванням на комп’ютері на бажаній мові. Дозволяючи читати вибраний текст альтернативним голосом.

Доступні голоси та мови

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

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.

2
Виходячи з власної (дуже суб’єктивної) оцінки як носія французької мови, я б сказав, що голос дуже хороший. Я щойно приєднався до цього сайту, щоб підтвердити вашу відповідь!
Розслаблено

2
чудова відповідь! Я думаю, це легко узагальнити і для інших мов. Яке в такому випадку було б ім'я оповідачів? :-)
Мурашка

Доступно багато інших голосів та мов ; див. розділ Інші мови .
Грем Мілн

1
Я оновив відповідь; Я вважаю, що Сервіс зараз називається Quick Action в macOS 10.14.
Грем Мілн

Чи є спосіб вибрати голос Сірі?
SuperSpy

6

Вигляд старої пошти і, можливо, ви вже знайшли рішення. Один із способів спростити це - за допомогою Automator.

Відкрийте Автоматизатор, виберіть Сервіс, Сервіс отримує вибраний текст, перетягніть дію "Говорити текст", щоб побудувати робочий цикл, виберіть Голос (наприклад: Ryan Speaking) Зберегти

Повторіть з різними голосами.

(Список послуг можна редагувати / очищати за допомогою програми Scrubber Application і частково у розділі Налаштування системи> Клавіатура> Комбінації клавіш> Послуги)

Редагувати. Тепер, коли у меню Сервісів є два або більше голосу, ви можете перейти до: Налаштування системи> Клавіатура> Комбінації клавіш> Комбінації програм та створення нової ярлика для кожного голосу.

Поки що він працює так на моїй машині (ОС 10.6.8): Системний голос за замовчуванням: ярлик Ryan (Infovox), вибраний у Speech Pref to Control + S. Це починає і зупиняє англійський текст.

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

Не впевнений, чи працює ця система, але працює в моїх браузерах, пошті та додатку BookReader, який я використовую.

Редагувати 2: Я помітив, що під час активації голосового сигналу в текстовому мовленні через службу Автоматизатор процес автоматичного запуску збільшує активність процесора вище 100% із швидкістю роботи вентиляторів. Не впевнений, чи є для цього рішення.


1
Чи можете ви додати скріншот робочого процесу Automator? З Automator це зазвичай легше зрозуміти, ніж текстовий опис
nohillside

2

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

Перейдіть до Налаштування системи> Диктант та мова> Текст до мови та встановіть, наприклад, системний голос Thomas.

Тоді:

  1. Виберіть будь-який текст у будь-якій програмі
  2. Control+ Клацніть, щоб відкрити контекстне меню
  3. Виберіть «Мова»> «Почніть говорити»

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


2

Я написав інструмент для цього, просто перейдіть до:

https://github.com/Fredmf/polyglott


Привіт, Ласкаво просимо до Питання різних. Будь ласка, поясніть трохи, що робить ваш інструмент і як. Дякую!
Хайме Санта-Крус

Дякую, що створили це. Я знайшов це найкориснішим інструментом на цій сторінці.
SuperSpy

2
  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

Відома невеличка проблема: Не натискайте клавішу швидкого доступу ще до того, як ви закінчите промову чи закінчення мови. В іншому випадку ви отримаєте повідомлення про помилку, як описано нижче.

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


1

Використання користувацької послуги зі стандартною Speak Textдією, щоб говорити вибраний текст із певним альтернативним голосом, має один головний недолік, детальний у відповіді Mikofox :

Неможливо легко зупинити відтворення, як можна, за допомогою вбудованої послуги TTS, просто натискаючи клавішу швидкого доступу знову.

Є два рішення :

Розкриття інформації: Я створив послуги, що розплановані, та voicesCLI

  • Створіть натомість службову службу з 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"

0

Як згадував Mikofox, ви можете зробити сервіс Автоматизатор для розмови тексту:

Існує помилка в 10.8 та 10.7, де ярлики для служб Автоматизатора не завжди працюють, поки ви не наведіть курсор миші на сервіси на панелі меню.
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.


1
Чи є спосіб вибрати голос Сірі у своїх інструментах? Дякуємо за створення голосової утиліти за замовчуванням!
SuperSpy

Ця техніка pbpaste відмінна! Дякую! echo 'Guten Tag. Wie geht es?' | pbcopy && pbpaste | say -v Anna
Володимир Вуканчак
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.