Phím tắt chuyển văn bản thành giọng nói với hai ngôn ngữ


13

Tôi sử dụng chức năng Text to Speech của Mac rất nhiều. Trong Cài đặt> Lời nói> Chuyển văn bản thành giọng nói Tôi cũng đã đặt "Khóa" để truy cập nhanh.

Vì tôi cũng muốn Text to Speech để đọc tiếng Đức và OS Lion cung cấp Voices cho các ngôn ngữ khác, tôi muốn có một lối tắt thứ hai cho tiếng Đức.

Có ai biết tôi có thể đặt cái này ở đâu không? Hay là cách duy nhất để liên tục thay đổi Giọng nói hệ thống trước khi tôi muốn đọc một văn bản tiếng Đức? (Và sau đó đặt lại giọng nói thành Alex cho các văn bản tiếng Anh)? Còn văn bản tiếng Pháp thì sao?

Những lựa chọn tồn tại cho vấn đề chung này?


2
Bạn đã thử chức năng đã được tích hợp trong OS X chưa?
nohillside

Câu trả lời:


18

Nói như thế

Bạn có thể sử dụng saylệnh với các giọng nói khác của OS X để có các ngôn ngữ khác nhau. Sử dụng Thomasgiọng nói để có được phát âm tiếng Pháp hoặc Yannickcho tiếng Đức.

Trong ví dụ này, tôi sẽ sử dụng Thomas và tiếng Pháp vì đây là những gì tôi biết nhưng Yannickcũng nên hoạt động tốt cho văn bản tiếng Đức.

Hãy thử lệnh sau trong Ứng dụng> Tiện ích> Terminal.app :

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

Nếu đây là chấp nhận được, bạn có thể quấn saylệnh lên trong một dịch vụ Automator; mà chúng ta sẽ làm tiếp theo

Dịch vụ tự động

Để tạo Dịch vụ tự động:

  1. Khởi chạy Automator.app
  2. Tạo một hành động nhanh mới ( Dịch vụ trước đây )
  3. Thêm một hành động AppleScript chạy
  4. Sao chép và dán vào AppleScript bên dưới:

    on run {input, parameters}
        do shell script "say -v Thomas " & (quoted form of (input as string))
        return input
    end run
    
  5. Lưu dịch vụ như Nói bằng tiếng Pháp

Dịch vụ tự động nói

Để sử dụng dịch vụ:

  1. Chọn văn bản trong TextEdit hoặc Safari
  2. Control + Nhấn vào đây để hiển thị Menu ngữ cảnh
  3. Chọn Dịch vụ> Nói bằng tiếng Pháp

Et voilà! Các ngôn ngữ và tiếng nói khác có sẵn.

Phương pháp tự động hóa này cho phép bạn giữ cho giọng nói mặc định của máy tính được đặt thành ngôn ngữ ưa thích của bạn. Trong khi cho phép văn bản được chọn được đọc bằng giọng nói thay thế.

Tiếng nói và ngôn ngữ có sẵn

Bạn có thể liệt kê các giọng nói có sẵn và các ngôn ngữ liên quan của chúng bằng lệnh:

say -v ?

Các giọng nói có sẵn có thể thay đổi giữa các phiên bản của macOS. Trên macOS 10.13, lệnh trả về:

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
Dựa trên đánh giá của tôi (rất chủ quan) như một người nói tiếng Pháp bản địa, tôi sẽ nói giọng nói rất hay. Tôi chỉ tham gia trang web này để nâng cao câu trả lời của bạn!
Thư giãn

2
câu trả lời chính xác! Tôi đoán nó cũng dễ dàng khái quát với các ngôn ngữ khác. Điều gì sẽ là trong trường hợp này tên của người kể chuyện? :-)
Ant

Nhiều tiếng nói & ngôn ngữ khác có sẵn; xem phần Ngôn ngữ khác .
Graham Miln

1
Tôi đã cập nhật câu trả lời; Tôi tin rằng Dịch vụ hiện được gọi là Hành động nhanh trong macOS 10.14.
Graham Miln

Có cách nào để chọn giọng nói của Siri không?
SuperSpy

6

Loại bài cũ và có thể bạn đã tìm thấy một giải pháp rồi. Một cách để đơn giản hóa điều này là với Automator.

Mở Automator, chọn Dịch vụ, Dịch vụ nhận văn bản đã chọn, kéo hành động "Nói văn bản" để xây dựng công việc, chọn Giọng nói (ví dụ: Ryan Nói) Lưu

Lặp lại với những giọng nói khác nhau.

(Danh sách dịch vụ có thể được chỉnh sửa / dọn dẹp bằng Ứng dụng dịch vụ quét và một phần trong Tùy chọn hệ thống> Bàn phím> Phím tắt> Dịch vụ)

Chỉnh sửa: Bây giờ bạn có hai hoặc nhiều Giọng nói trong Menu Dịch vụ, bạn có thể truy cập: Tùy chọn hệ thống> Bàn phím> Phím tắt> Phím tắt ứng dụng và tạo Phím tắt mới cho mỗi giọng nói.

Cho đến nay, nó hoạt động như thế này trên máy của tôi (OS 10.6.8): Giọng nói hệ thống mặc định: Phím tắt Ryan (Infovox) được chọn trong Speech Pref to Control + S. Điều này bắt đầu và dừng văn bản tiếng Anh.

Giọng nói tiếng Đức tôi đã gán Control + Y (giọng Yannick từ Lion OS). Control + Y bắt đầu giọng nói tiếng Đức cho văn bản đã chọn của Đức; có thể dừng lại bằng cách nhấp vào phím tắt start / stop chính hai lần, tại đây Control + S + S. Lý do hai lần là vì nhấn nó một lần sẽ bắt đầu giọng nói tiếng Anh qua giọng nói tiếng Đức. Đó là điều tốt nhất tôi có thể đi lên cho đến nay. Đảm bảo các phím tắt không xung đột với các phím tắt khác. Bạn sẽ nhận thấy rằng phím tắt bổ sung cho phép bạn bắt đầu một số chuỗi giọng nói, nói chuyện với nhau cộng với giọng nói hệ thống mặc định, điều này thúc đẩy hoạt động của bộ xử lý, nhưng không có vấn đề gì nếu một người nhớ dừng việc nói bằng cách thực hiện hai lần phím tắt cho giọng nói mặc định.

Không chắc chắn nếu điều này hoạt động trên toàn hệ thống, nhưng hoạt động trong trình duyệt, Mail và ứng dụng BookReader của tôi mà tôi đang sử dụng.

Chỉnh sửa 2: Tôi đã nhận thấy rằng khi kích hoạt giọng nói chuyển văn bản thành giọng nói phụ thông qua Dịch vụ tự động, quy trình Trình chạy tự động sẽ tăng hoạt động của bộ xử lý lên trên 100% với tốc độ của người hâm mộ. Không chắc chắn nếu có một giải pháp cho việc này.


1
Bạn có thể thêm một ảnh chụp màn hình của quy trình làm việc Automator của bạn? Với Automator, điều này thường dễ hiểu hơn so với mô tả văn bản
nohillside

2

Bạn cũng có thể đặt giọng nói hệ thống thành tiếng Pháp.

Đi tới Tùy chọn hệ thống> Đọc chính tả & Phát biểu> Văn bản thành Lời nói và đặt giọng nói hệ thống thành Thomasví dụ.

Sau đó:

  1. Chọn bất kỳ văn bản trong bất kỳ ứng dụng
  2. Control+ Nhấn vào đây để hiển thị menu ngữ cảnh
  3. Chọn bài phát biểu> Bắt đầu nói

Ngoài ra còn có một tùy chọn để đặt một phím tắt, vì vậy bạn chỉ cần chọn bất kỳ văn bản nào và nhấn phím tắt để bắt đầu nói bằng tiếng Pháp.


2

Tôi đã viết một công cụ cho điều đó, chỉ cần đi đến:

https://github.com/Fredmf/polyglott


Xin chào, chào mừng bạn đến hỏi khác nhau. Vui lòng giải thích một chút những gì công cụ của bạn làm và làm thế nào. Cảm ơn!
Jaime Santa Cruz

Cảm ơn bạn đã tạo ra điều này. Tôi thấy đây là công cụ hữu ích nhất trên trang này.
SuperSpy

2
  1. Khởi chạy Automator.app

  2. Tạo một dịch vụ mới

  3. Thêm một hành động Nói văn bản

  4. Chọn Samantha

  5. Lưu dịch vụ dưới dạng speakSamantha

Thêm một hành động Nói văn bản

Cài đặt phím tắt cho dịch vụ

  1. Mở tùy chọn hệ thống

  2. Chọn bàn phím

  3. Chọn phím tắt

  4. Chọn dịch vụ

  5. Tạo một lối tắt, Command + Alt + 1 cho speakSamantha

Tạo một lối tắt cho speakSamantha

Sử dụng dịch vụ

  1. Mở trình duyệt

  2. Chọn một số văn bản tiếng Anh

  3. Nhấn Command + Alt + 1

Để dừng bài phát biểu (Phương pháp 1)

  1. Nhấn Alt + ESC

Để dừng bài phát biểu (Cách 2)

  1. Nhấp vào biểu tượng quay cog trong thanh menu

  2. Nhấp vào

Nhấp vào biểu tượng quay cog trong thanh menu

Để thêm giọng nói thứ hai

  1. Lặp lại quy trình trên, thêm các thay đổi nhỏ sau đây

  2. Chọn giọng nói thứ hai, ví dụ Anna , giọng Đức

  3. Lưu dịch vụ dưới dạng speakAnna

  4. Tạo lối tắt bàn phím, Command + Alt + 2 cho speakAnna

Một vấn đề nhỏ đã biết: Đừng nhấn phím tắt một lần nữa trước khi bạn kết thúc bài phát biểu hoặc bài phát biểu kết thúc. Nếu không, bạn sẽ nhận được một thông báo lỗi như sau.

nhập mô tả hình ảnh ở đây


1

Sử dụng dịch vụ tùy chỉnh với Speak Texthành động tiêu chuẩn để nói văn bản đã chọn bằng giọng nói thay thế cụ thể có một nhược điểm lớn, như chi tiết trong câu trả lời của Mikofox :

Bạn không thể dễ dàng dừng phát lại theo cách bạn có thể với dịch vụ TTS tích hợp chỉ bằng cách nhấn lại phím tắt.

hai giải pháp :

Tiết lộ: Tôi đã tạo các dịch vụ đóng gói sẵn và voicesCLI

  • Xây dựng một dịch vụ tùy chỉnh bằng một Run Shell Scripthành động thay vào đó, trong đó bạn sử dụng sayCLI , cho phép thực hiện chuyển đổi phát lại (dừng lời nói nếu được gọi trong khi vẫn nói từ lời gọi trước đó)

    • Xem bên dưới để biết cách triển khai đơn giản có hiệu quả, nhưng nó sẽ không tôn trọng bất kỳ tốc độ nói tùy chỉnh nào (từ mỗi phút) mà bạn có thể đã định cấu hình cho từng giọng nói thông qua Tùy chọn hệ thống.
    • Một giải pháp tôn vinh tốc độ nói tùy chỉnh đòi hỏi nhiều công việc hơn một chút; bạn có thể tìm thấy một dịch vụ đóng gói sẵn ở đây ; hoặc sử dụng liên kết tải xuống trực tiếp (sẽ duy trì hiện tại) ..
  • Hoặc, tạo một dịch vụ chuyển giọng nói mặc định theo yêu cầu , sau đó cho phép bạn sử dụng dịch vụ TTS tích hợp với tính năng chuyển đổi phát lại của nó.

    • Mặc dù OSX không cung cấp cách lập trình để thay đổi giọng nói mặc định, bạn có thể sử dụng dịch vụ đóng gói sẵn được xây dựng trên voicesCLI :
      Thực hiện theo các hướng dẫn tại đây hoặc sử dụng liên kết tải xuống trực tiếp (sẽ duy trì hiện tại).

Thực hiện đơn giản một dịch vụ với chuyển đổi phát lại :

Như đã nêu, điều này sẽ không tôn trọng tốc độ nói tùy chỉnh được định cấu hình cho giọng nói đã chọn.

  • Tạo một dịch vụ mới trong Automator
  • Để mặc định (dịch vụ nhận văn bản trong bất kỳ ứng dụng nào)
  • Thêm một Run Shell Scripthành động và dán như sau:
#  ------- 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

Như Mikofox đã đề cập, bạn có thể tạo một dịch vụ Automator để nói văn bản:

Có một lỗi trong 10.8 và 10.7 trong đó các phím tắt cho dịch vụ Automator không luôn hoạt động cho đến khi bạn di chuột qua menu dịch vụ từ thanh menu.
WorkflowServiceRunner cũng có thể sử dụng hơn 100% CPU khi nói văn bản.

Tôi đã sử dụng FastScripts để gán một lối tắt cho tập lệnh này:

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

Một lựa chọn khác là chỉ chạy một cái gì đó như pbpaste | say -v kyoko.


1
Có cách nào để chọn giọng nói của Siri trong các công cụ của bạn không? Cảm ơn bạn đã tạo tiện ích giọng nói mặc định chuyển đổi!
siêu điệp

Kỹ thuật pbpaste này là tuyệt vời! Cảm ơn! echo 'Guten Tag. Wie geht es?' | pbcopy && pbpaste | say -v Anna
Vladimir Vukanac
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.