Skróty tekstowe na mowę w dwóch językach

13

Często używam funkcji zamiany tekstu na mowę w komputerze Mac. W Ustawieniach> Mowa> Tekst na mowę ustawiłem także „Klucz” dla szybkiego dostępu.

Ponieważ chcę, aby tekst na mowę czytał niemiecki, a OS Lion oferuje głosy w innych językach, chciałbym mieć drugi skrót do niemieckiego.

Czy ktoś wie, gdzie mogę to ustawić? Czy jest to jedyny sposób na ciągłą zmianę brzmienia systemowego, zanim chcę przeczytać tekst w języku niemieckim? (A następnie zresetuj głos do Alexa w przypadku tekstów angielskich)? A co z tekstem francuskim?

Jakie opcje istnieją dla tego ogólnego problemu?

Joseph
źródło
2
czy wypróbowałeś funkcjonalność już wbudowaną w OS X?
nohillside

Odpowiedzi:

19

Powiedz jako…

Możesz użyć saypolecenia z innymi głosami OS X, aby uzyskać różne języki. Użyj Thomasgłosu, aby uzyskać wymowę francuską lub Yannickniemiecki.

W tym przykładzie użyję Thomasa i francuskiego, ponieważ wiem o tym, ale Yannickpowinien również działać z tekstem w języku niemieckim.

Wypróbuj następujące polecenie w Aplikacje> Narzędzia> Terminal.app :

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

Jeśli jest to dopuszczalne, możesz zawrzeć saypolecenie w usłudze Automator; co zrobimy dalej.

Serwis Automatora

Aby utworzyć usługę Automator:

  1. Uruchom Automator.app
  2. Utwórz nową szybką akcję (wcześniej usługa )
  3. Dodaj akcję Uruchom AppleScript
  4. Skopiuj i wklej w AppleScript poniżej:

    on run {input, parameters}
        do shell script "say -v Thomas " & (quoted form of (input as string))
        return input
    end run
    
  5. Zapisz usługę jako Mów po francusku

Automator powiedz serwis

Aby skorzystać z usługi:

  1. Zaznacz tekst w TextEdit lub Safari
  2. Control + Kliknij, aby wyświetlić menu kontekstowe
  3. Wybierz Usługi> Mów po francusku

Gotowe ! Dostępne są inne języki i głosy .

To podejście Automatora pozwala zachować domyślny głos komputera ustawiony na preferowany język. Umożliwiając czytanie wybranego tekstu alternatywnym głosem.

Dostępne głosy i języki

Możesz wyświetlić listę dostępnych głosów i powiązanych z nimi języków za pomocą polecenia:

say -v ?

Dostępne głosy mogą się zmieniać między wersjami macOS. W systemie macOS 10.13 polecenie zwraca:

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.
Graham Miln
źródło
2
Opierając się na własnej (bardzo subiektywnej) ocenie jako native speakera francuskiego powiedziałbym, że głos jest bardzo dobry. Właśnie dołączyłem do tej strony, aby głosować na twoją odpowiedź!
Zrelaksowany
2
świetna odpowiedź! Myślę, że można go łatwo uogólnić również na inne języki. Jaka byłaby w tym przypadku nazwa narratorów? :-)
Ant
Dostępnych jest wiele innych głosów i języków ; zobacz sekcję Inne języki .
Graham Miln,
1
Zaktualizowałem odpowiedź; Wierzę, że usługa nazywa się teraz w MacOS 10.14 Szybka akcja .
Graham Miln,
Czy istnieje sposób na wybranie głosu Siri?
SuperSpy,
6

Niby stary post i może już znalazłeś rozwiązanie. Jednym ze sposobów uproszczenia tego jest Automator.

Otwórz Automator, wybierz Usługa, Usługa odbiera zaznaczony tekst, przeciągnij akcję „Mów tekst”, aby zbudować przepływ pracy, wybierz Głos (na przykład: Ryan Mówi) Zapisz

Powtarzaj z różnymi głosami.

(Lista usług może być edytowana / czyszczona za pomocą aplikacji Service Scrubber i częściowo w Preferencjach systemowych> Klawiatura> Skróty klawiaturowe> Usługi)

Edycja: Teraz, gdy masz dwa lub więcej głosów w menu Usługi, możesz przejść do: Preferencje systemowe> Klawiatura> Skróty klawiaturowe> Skróty aplikacji i utwórz nowy skrót dla każdego głosu.

Jak dotąd działa to tak na moim komputerze (OS 10.6.8): Domyślny głos systemowy: Ryan (Infovox) Skrót wybrany w Prefekcja mowy do Control + S. To uruchamia i zatrzymuje tekst w języku angielskim.

Niemiecki głos przypisałem Control + Y (głos Yannick z Lion OS). Control + Y uruchamia głos niemiecki dla wybranego tekstu w języku niemieckim; które można zatrzymać, klikając dwukrotnie główny skrót start / stop, tutaj Control + S + S. Powodem dwukrotnego jest to, że jednorazowe naciśnięcie uruchamia głos angielski nad głosem niemieckim. To najlepsze, jakie mogłem do tej pory wymyślić. Upewnij się, że skróty nie powodują konfliktu z innymi skrótami. Zauważysz, że dodatkowy skrót pozwala na uruchomienie kilku wątków głosowych, rozmawianie ze sobą plus domyślny głos systemowy, który przyspiesza działanie procesora, ale nie ma problemu, jeśli pamiętasz, aby zatrzymać mówienie poprzez podwójne uruchomienie skrótu dla domyślny głos.

Nie jestem pewien, czy działa to w całym systemie, ale działa w moich przeglądarkach, poczcie i używanej aplikacji BookReader.

Edycja 2: Zauważyłem, że podczas aktywacji dodatkowego głosu syntezatora mowy za pośrednictwem usługi Automator proces Automator Runner zwiększa aktywność procesora do ponad 100%, a wentylatory przyśpieszają. Nie jestem pewien, czy istnieje na to rozwiązanie.

Mikofox
źródło
1
Czy możesz dodać zrzut ekranu z przepływu pracy Automatora? W Automatorze jest to zwykle łatwiejsze do zrozumienia niż opis tekstowy
nohillside
2

Możesz także ustawić głos systemowy na francuski.

Wybierz Preferencje systemowe> Dyktowanie i mowa> Tekst na mowę i ustaw Thomasna przykład głos systemowy .

Następnie:

  1. Wybierz dowolny tekst w dowolnej aplikacji
  2. Control+ Kliknij, aby wyświetlić menu kontekstowe
  3. Wybierz opcję Mowa> Zacznij mówić

Istnieje również opcja ustawienia skrótu, dzięki czemu możesz po prostu zaznaczyć dowolny tekst i nacisnąć skrót, aby zacząć mówić po francusku.

Artur
źródło
2

Napisałem do tego narzędzie, po prostu przejdź do:

https://github.com/Fredmf/polyglott

Fred Flügge
źródło
Cześć, witaj w Ask Different. Wyjaśnij trochę, co robi Twoje narzędzie i jak. Dzięki!
Jaime Santa Cruz,
Dziękujemy za utworzenie tego. Znalazłem to najbardziej pomocne narzędzie na tej stronie.
SuperSpy,
2
  1. Uruchom Automator.app

  2. Utwórz nową usługę

  3. Dodaj akcję Mów tekst

  4. Wybierz Samantha

  5. Zapisz usługę jako SpeakSamantha

Dodaj akcję Mów tekst

Skonfiguruj skrót klawiaturowy dla usługi

  1. Otwórz Preferencje systemowe

  2. Wybierz klawiaturę

  3. Wybierz skróty

  4. Wybierz Usługi

  5. Utwórz skrót Command + Alt + 1 dla SpeakSamantha

Utwórz skrót do SpeakSamantha

Aby skorzystać z usługi

  1. Otwórz przeglądarkę

  2. Wybierz niektóre teksty w języku angielskim

  3. Naciśnij Command + Alt + 1

Aby zatrzymać mowę (Metoda 1)

  1. Naciśnij klawisze Alt + ESC

Aby zatrzymać mowę (Metoda 2)

  1. Kliknij ikonę kołowrotka na pasku menu

  2. Kliknij

Kliknij ikonę kołowrotka na pasku menu

Aby dodać drugi głos

  1. Powtórz powyższy proces, dodając następujące niewielkie zmiany

  2. Wybierz drugi głos, na przykład Anna , głos niemiecki

  3. Zapisz usługę jako SpeakAnna

  4. Utwórz skrót klawiaturowy, Command + Alt + 2 dla SpeakAnna

Znany mały problem: nie naciskaj ponownie skrótu przed zakończeniem mowy lub mowy. W przeciwnym razie pojawi się komunikat o błędzie podobny do następującego.

wprowadź opis zdjęcia tutaj

ffmaer
źródło
1

Używanie usługi niestandardowej ze standardową Speak Textakcją do wypowiadania wybranego tekstu określonym głosem alternatywnym ma jedną poważną wadę, jak szczegółowo opisano w odpowiedzi Mikofox :

Nie można łatwo zatrzymać odtwarzania tak, jak to możliwe dzięki wbudowanej usłudze TTS, po prostu naciskając ponownie skrót klawiaturowy.

Istnieją dwa rozwiązania :

Ujawnienie: Stworzyłem paczkowane usługi i voicesCLI

  • Zamiast tego zbuduj usługę niestandardową z Run Shell Scriptdziałaniem , w której korzystasz z sayinterfejsu CLI , który umożliwia implementację przełączania odtwarzania (zatrzymanie mowy, jeśli zostanie wywołane podczas mówienia z poprzedniego wywołania)

    • Zobacz poniżej prostą implementację, która działa, ale nie będzie honorować żadnych niestandardowych szybkości mówienia (słów na minutę), które możesz skonfigurować dla poszczególnych głosów za pomocą Preferencji systemowych.
    • Rozwiązanie, które honoruje niestandardowe stawki za mówienie, wymaga nieco więcej pracy; można znaleźć paczkowanych usługę tutaj ; lub użyj bezpośredniego linku do pobrania (pozostanie aktualny) ..
  • Alternatywnie, stworzyć serwis, który przełącza domyślny głos na żądanie , co następnie pozwala skorzystać z wbudowanego w TTS-usługi z przełącznikiem funkcji odtwarzania.

    • Podczas gdy OSX nie oferuje żadnego programowego sposobu zmiany domyślnego głosu, możesz użyć paczkowanej usługi zbudowanej na voicesCLI :
      Postępuj zgodnie z instrukcjami tutaj lub użyj bezpośredniego łącza pobierania (pozostanie aktualne).

Prosta implementacja usługi z przełącznikiem odtwarzania :

Jak wspomniano, nie będzie to honorować niestandardowych szybkości mówienia skonfigurowanych dla wybranego głosu.

  • Utwórz nową usługę w Automatorze
  • Pozostaw wartości domyślne (usługa odbiera tekst w dowolnej aplikacji)
  • Dodaj Run Shell Scriptakcję i wklej następujące elementy:
#  ------- 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"
mklement0
źródło
0

Jak wspomniał Mikofox, możesz utworzyć usługę Automator do wypowiadania tekstu:

W wersjach 10.8 i 10.7 występuje błąd, w którym skróty do usług Automatora nie zawsze działają, dopóki nie najedziesz myszą na menu usług z paska menu.
WorkflowServiceRunner może również używać ponad 100% procesora podczas odczytywania tekstu.

Użyłem FastScripts, aby przypisać skrót do tego skryptu:

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

Inną opcją jest po prostu uruchomienie czegoś takiego pbpaste | say -v kyoko.

Lri
źródło
1
Czy istnieje sposób, aby wybrać głos Siri w swoich narzędziach? Dziękujemy za utworzenie domyślnego narzędzia głosowego przełącznika!
SuperSpy,
Ta technika pasty pb jest doskonała! Dzięki! echo 'Guten Tag. Wie geht es?' | pbcopy && pbpaste | say -v Anna
Vladimir Vukanac