ทางลัด Text to Speech มีสองภาษา


13

ฉันใช้ฟังก์ชั่น Text to Speech ของ Mac เป็นอย่างมาก ภายใต้การตั้งค่า> คำพูด> ข้อความเป็นคำพูดฉันได้ตั้ง "คีย์" เพื่อการเข้าถึงที่รวดเร็ว

เนื่องจากฉันต้องการ Text to Speech เพื่ออ่านภาษาเยอรมันและ OS Lion เสนอเสียงสำหรับภาษาอื่นฉันจึงต้องการทางลัดที่สองสำหรับภาษาเยอรมัน

ไม่มีใครรู้ว่าฉันสามารถตั้งค่านี้ได้ที่ไหน หรือเป็นวิธีเดียวที่จะเปลี่ยน System Voice ก่อนที่ฉันจะต้องการอ่านข้อความภาษาเยอรมันอย่างต่อเนื่อง? (และจากนั้นรีเซ็ตเสียงเป็น Alex สำหรับข้อความภาษาอังกฤษ) แล้วข้อความภาษาฝรั่งเศสล่ะ

ตัวเลือกใดที่มีอยู่สำหรับปัญหาทั่วไปนี้


2
คุณลองใช้ฟังก์ชั่นที่มีอยู่แล้วใน OS X หรือไม่?
nohillside

คำตอบ:


19

พูดเป็น ...

คุณสามารถใช้sayคำสั่งกับเสียงอื่น ๆ ของ OS X เพื่อรับภาษาที่แตกต่างกัน ใช้Thomasเสียงเพื่อออกเสียงภาษาฝรั่งเศสหรือYannickภาษาเยอรมัน

ในตัวอย่างนี้ฉันจะใช้โทมัสและฝรั่งเศสเพราะนี่คือสิ่งที่ฉันรู้ แต่Yannickควรทำงานได้ดีกับข้อความภาษาเยอรมัน

ลองคำสั่งต่อไปนี้ในApplications> Utilities> Terminal.app :

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

หากสิ่งนี้เป็นที่ยอมรับคุณสามารถปิดsayคำสั่งในบริการ Automator ซึ่งเราจะทำต่อไป

บริการอัตโนมัติ

ในการสร้างบริการอัตโนมัติ:

  1. เรียกใช้Automator.app
  2. สร้างการดำเนินการด่วนใหม่( บริการก่อนหน้านี้)
  3. เพิ่มแอ็คชันRun AppleScript
  4. คัดลอกและวางใน AppleScript ด้านล่าง:

    on run {input, parameters}
        do shell script "say -v Thomas " & (quoted form of (input as string))
        return input
    end run
    
  5. บันทึกบริการเป็นพูดเป็นภาษาฝรั่งเศส

Automator พูดบริการ

วิธีใช้บริการ:

  1. เลือกข้อความใน TextEdit หรือ Safari
  2. Control + คลิกเพื่อเปิดเผยเมนูบริบท
  3. เลือกบริการ> พูดเป็นภาษาฝรั่งเศส

และอื่น ๆ ! ภาษาและเสียงอื่น ๆ ที่มีอยู่

วิธีการอัตโนมัตินี้ช่วยให้คุณสามารถตั้งค่าเสียงเริ่มต้นของคอมพิวเตอร์เป็นภาษาที่คุณต้องการ ในขณะที่อนุญาตให้อ่านข้อความที่เลือกในเสียงอื่น

เสียงและภาษาที่มี

คุณสามารถแสดงรายการเสียงที่มีอยู่และภาษาที่เกี่ยวข้องด้วยคำสั่ง:

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
คำตอบที่ดี! ฉันเดาว่ามันเป็นภาษาอื่น ๆ ในกรณีนี้ชื่อของผู้บรรยายจะเป็นอย่างไร :-)
Ant

เสียงและภาษาอื่น ๆ อีกมากมายมีให้บริการ; ดูหัวข้อภาษาอื่น
Graham Miln

1
ฉันได้อัพเดตคำตอบแล้ว ฉันเชื่อว่าขณะนี้บริการเรียกว่าการดำเนินการด่วนใน macOS 10.14
Graham Miln

มีวิธีในการเลือกเสียงของ Siri หรือไม่?
SuperSpy

6

ชนิดของโพสต์เก่าและบางทีคุณได้พบทางออกแล้ว วิธีหนึ่งในการทำให้สิ่งนี้ง่ายขึ้นคือ Automator

เปิด Automator เลือกบริการรับข้อความที่เลือกลากการกระทำ "พูดข้อความ" เพื่อสร้างเวิร์กโฟลว์เลือกเสียง (ตัวอย่างเช่น Ryan Speaking) บันทึก

เล่นซ้ำด้วยเสียงที่ต่างกัน

(รายการบริการสามารถแก้ไข / ล้างด้วย Service Scrubber Application และบางส่วนภายใต้การตั้งค่าระบบ> คีย์บอร์ด> แป้นพิมพ์ลัด> บริการ)

แก้ไข: ขณะนี้คุณมีเสียงสองเสียงขึ้นไปภายใต้เมนูบริการคุณสามารถไปที่: การตั้งค่าระบบ> คีย์บอร์ด> แป้นพิมพ์ลัด> ทางลัดแอปพลิเคชันและสร้างทางลัดใหม่สำหรับแต่ละเสียง

จนถึงตอนนี้มันใช้งานได้กับเครื่องของฉัน (ระบบปฏิบัติการ 10.6.8): ระบบเสียงเริ่มต้น: ปุ่มลัด (Infovox) ไรอันเลือกใน Speech Pref to Control + S สิ่งนี้เริ่มต้นและหยุดข้อความภาษาอังกฤษ

เสียงภาษาเยอรมันที่ฉันได้มอบหมายให้ Control + Y (เสียง Yannick จาก Lion OS) Control + Y เริ่มเสียงภาษาเยอรมันสำหรับข้อความที่เลือกภาษาเยอรมัน ซึ่งสามารถหยุดได้โดยคลิกที่ปุ่มเริ่ม / หยุดทางลัดหลักสองครั้งที่นี่ Control + S + S เหตุผลที่สองคือเนื่องจากการกดครั้งเดียวจะเริ่มเสียงภาษาอังกฤษเหนือเสียงภาษาเยอรมัน นั่นเป็นสิ่งที่ดีที่สุดที่ฉันสามารถทำได้ ตรวจสอบให้แน่ใจว่าทางลัดนั้นไม่ขัดแย้งกับทางลัดอื่น ๆ คุณจะสังเกตเห็นว่าช็อตคัตเพิ่มเติมอนุญาตให้คุณเริ่มหัวข้อเสียงต่างๆพูดคุยกันรวมถึงเสียงระบบเริ่มต้นซึ่งเพิ่มกิจกรรมโปรเซสเซอร์ แต่ไม่มีปัญหาหากมีใครจำหยุดพูดโดยการดำเนินการทางลัดสองครั้งสำหรับ เสียงเริ่มต้น

ไม่แน่ใจว่าใช้งานได้ทั้งระบบหรือไม่ แต่ใช้ได้กับเบราว์เซอร์จดหมายและแอป BookReader ที่ฉันใช้อยู่

แก้ไข 2: ฉันสังเกตเห็นว่าเมื่อเปิดใช้งานการแปลงข้อความเป็นคำพูดรองผ่านบริการ Automator กระบวนการ Automator Runner จะขับเคลื่อนกิจกรรมของตัวประมวลผลให้สูงกว่า 100% โดยที่แฟน ๆ เร่งความเร็ว ไม่แน่ใจว่ามีวิธีแก้ปัญหานี้หรือไม่


1
คุณสามารถเพิ่มภาพหน้าจอของเวิร์กโฟลว์อัตโนมัติของคุณได้หรือไม่? ด้วย Automator คุณสามารถเข้าใจได้ง่ายกว่าคำอธิบายที่เป็นข้อความ
nohillside

2

คุณสามารถตั้งค่าระบบเสียงเป็นภาษาฝรั่งเศสได้

ไปที่การตั้งค่าระบบ> การเขียนตามคำบอก & คำพูด> ข้อความเป็นคำพูดและตั้งค่าเสียงของระบบThomasเป็นตัวอย่าง

แล้ว:

  1. เลือกข้อความใด ๆ ในแอปพลิเคชันใด ๆ
  2. Control+ คลิกเพื่อเปิดเผยเมนูบริบท
  3. เลือกคำพูด> เริ่มพูด

นอกจากนี้ยังมีตัวเลือกในการตั้งค่าทางลัดเพื่อให้คุณสามารถเลือกข้อความและกดทางลัดเพื่อเริ่มพูดเป็นภาษาฝรั่งเศส


2

ฉันเขียนเครื่องมือสำหรับสิ่งนั้นเพียงไปที่:

https://github.com/Fredmf/polyglott


สวัสดียินดีต้อนรับสู่ Ask Different โปรดอธิบายเล็กน้อยว่าเครื่องมือของคุณทำอะไรและอย่างไร ขอบคุณ!
Jaime Santa Cruz

ขอบคุณที่สร้างสิ่งนี้ ฉันพบสิ่งนี้เป็นเครื่องมือที่มีประโยชน์ที่สุดในหน้านี้
SuperSpy

2
  1. เรียกใช้Automator.app

  2. สร้างบริการใหม่

  3. เพิ่มแอคชั่นSpeak Text

  4. เลือกSamantha

  5. บันทึกบริการเป็นSpeakSamantha

เพิ่มแอคชั่น Speak Text

ตั้งค่าแป้นพิมพ์ลัดสำหรับบริการ

  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 ในตัวเพียงแค่กดแป้นพิมพ์ลัดอีกครั้ง

มีสองวิธีแก้ไข :

การเปิดเผย: ฉันสร้างบริการ prepackaged และvoicesCLI

  • สร้างบริการที่กำหนดเองด้วยการRun Shell Scriptดำเนินการแทนซึ่งคุณใช้sayCLIซึ่งอนุญาตให้ใช้การสลับการเล่น (หยุดการพูดถ้าถูกเรียกในขณะที่ยังพูดจากการเรียกใช้ก่อนหน้านี้)

    • ดูด้านล่างสำหรับการใช้งานอย่างง่ายที่ใช้งานได้ แต่จะไม่ให้เกียรติอัตราการพูดที่กำหนดเองใด ๆ (คำต่อนาที) ที่คุณอาจกำหนดค่าสำหรับเสียงแต่ละรายการผ่านการตั้งค่าระบบ
    • โซลูชันที่ให้อัตราการพูดที่กำหนดเองต้องใช้งานอีกมาก คุณสามารถหาบริการ prepackaged นี่ ; หรือใช้ลิงค์ดาวน์โหลดโดยตรง (จะเป็นปัจจุบัน)
  • อีกวิธีหนึ่งคือสร้างบริการที่เปลี่ยนเสียงตามความต้องการเริ่มต้นซึ่งจะช่วยให้คุณใช้บริการ TTS ในตัวด้วยคุณสมบัติสลับการเล่น

    • ในขณะที่ OSX ไม่มีวิธีการเขียนโปรแกรมเพื่อเปลี่ยนเสียงเริ่มต้นคุณสามารถใช้บริการ prepackaged ที่สร้างขึ้นบน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 พูดไว้คุณสามารถสร้างบริการ Automator เพื่อพูดข้อความ:

มีข้อผิดพลาดใน 10.8 และ 10.7 ซึ่งทางลัดสำหรับบริการ Automator จะไม่ทำงานจนกว่าคุณจะเลื่อนเมาส์ไปที่เมนูบริการจากแถบเมนู
WorkflowServiceRunner ยังสามารถใช้ CPU มากกว่า 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
มีวิธีในการเลือกเสียงของ Siri ในเครื่องมือของคุณหรือไม่? ขอบคุณที่สร้างยูทิลิตี้เปลี่ยนเสียงเป็นค่าเริ่มต้น!
SuperSpy

เทคนิค pbpaste นี้ยอดเยี่ยมมาก! ขอบคุณ! echo 'Guten Tag. Wie geht es?' | pbcopy && pbpaste | say -v Anna
Vladimir Vukanac
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.