Mac OS X - เปลี่ยนเสียงสำหรับ Text-to-Speech อย่างรวดเร็ว


10

ฉันชอบคุณสมบัติข้อความเป็นคำพูดของ Mac OS X เนื่องจากฉันไม่ใช่เจ้าของภาษาอังกฤษฉันมีความสุขมากที่ได้เพิ่มภาษาเพิ่มเติมทั้งหมดตั้งแต่ Lion ออกมา อย่างไรก็ตามฉันใช้ภาษาอังกฤษและภาษาแม่ของฉัน (เยอรมัน) การเปลี่ยนเสียงเป็นความเจ็บปวดเล็กน้อย มันต้องใช้ขั้นตอนมากเกินไปที่จะสบาย

มีวิธีใดที่จะทำให้เรื่องนี้ง่ายขึ้น? ฉันกำลังมองหาทางลัดอาจจะมีเมนูแบบเลื่อนลงที่มุมด้านขวาทุกอย่างจะดี

เนื่องจากการค้นหาของฉันไม่ประสบความสำเร็จฉันหวังว่าจะได้รับคำแนะนำจาก SuperUser ที่นี่ ขอบคุณมาก!

ลูกบาศ์กโรมัน


ฉันใช้ Mac และสร้าง Talkie: ส่วนขยายเบราว์เซอร์ข้อความเป็นคำพูดพร้อมการตรวจจับภาษาอัตโนมัติ มันเป็นโอเพ่นซอร์สทั้งหมด แต่คุณสมบัติบางอย่างอยู่ในการจัดจำหน่ายเชิงพาณิชย์ของ Talkie Premium ใช้งานง่ายที่สุดในเบราว์เซอร์ (พร้อมปุ่มลัด) แต่คุณสามารถใช้งานได้จากแอปพลิเคชันใด ๆ ผ่านคลิปบอร์ด (พรีเมียม) อาจช่วยคุณออก! joelpurra.com/projects/talkie
Joel Purra

คำตอบ:


9

ฉันใช้ FastScripts เพื่อกำหนดทางลัดให้กับสคริปต์นี้:

try
    set old to the clipboard as record
end try
try
    tell application "System Events" to keystroke "c" using command down
    delay 0.05
    say (the clipboard) using "Kyoko"
end try
try
    set the clipboard to old
end try

คุณสามารถสร้างบริการใน Automator:

มีข้อผิดพลาดใน 10.7 และ 10.8 ซึ่งทางลัดสำหรับบริการ Automator จะไม่ทำงานจนกว่าคุณจะวางเมาส์เหนือเมนูบริการจากแถบเมนู WorkflowServiceRunner ยังสามารถใช้ CPU มากกว่า 100% ในขณะที่พูดข้อความ

อีกตัวเลือกหนึ่งคือใช้สคริปต์ UI เพื่อเปลี่ยนระหว่างสองเสียง:

tell application "System Preferences"
    reveal anchor "TTS" of pane "com.apple.preference.speech"
end tell
tell application "System Events" to tell process "System Preferences"
    tell pop up button 1 of tab group 1 of window 1
        click
        delay 0.1
        if value is "Alex" then
            click menu item "Victoria" of menu 1
        else
            click menu item "Alex" of menu 1
        end if
    end tell
end tell
quit application "System Preferences"

การเปลี่ยนคีย์ SelectedVoiceID ใน com.apple.speech.voice.prefs.plist ก็ใช้ได้เช่นกัน แต่ฉันไม่รู้วิธีใช้การเปลี่ยนแปลงทันที


ว้าวขอบคุณมากสำหรับคำตอบที่มีรายละเอียดมากและแสดงตัวเลือกมากมายให้ฉัน บริการ Automator ใช้งานได้ดีสำหรับฉันตอนนี้ฉันรู้เกี่ยวกับบริการเหล่านั้นแล้ว ฉันอาจต้องการเพิ่มอันอื่นด้วย :)

1
สิ่งที่ยอดเยี่ยม ตั้งแต่ OSX 10.10: เมื่อต้องการใช้การเปลี่ยนแปลงใน~/Library/Preferences/com.apple.speech.voice.prefs.plistทันทีให้เรียกใช้pkill com.apple.speech.speechsynthesisdซึ่งทำให้ระบบรีสตาร์ทกระบวนการโดยอัตโนมัติ ณ จุดที่มีการเปลี่ยนแปลงเกิดขึ้น
mklement0

1
ใน OS X 10.10.4 ของฉันสคริปต์ UI ของคุณจะทำงานเฉพาะเมื่อฉันแทรกบรรทัด "เปิดใช้งาน" ระหว่างบรรทัดที่ 1 และ 2 มิฉะนั้นฉันได้รับข้อผิดพลาด:„ แท็บกลุ่ม 1 ของหน้าต่าง 1 ของกระบวนการ \ "การตั้งค่าระบบ \" "ไม่สามารถ อ่าน ... ข้อเสนอแนะใด ๆ ที่ว่าทำไมถึงมีผลกับฉัน
Jens Wirth

3

ขอบคุณมาก Lauryi

ฉันได้ขยายวิธีการเขียนสคริปต์ UI ของคุณเพื่อให้ทำงานได้อย่างถูกต้องกับเสียงภาษาเยอรมันและภาษาอังกฤษ ปัญหาคือเมื่อภาษาระบบของคุณไม่ใช่ภาษาอังกฤษภาษาที่ไม่ใช่ระบบทั้งหมดจะถูกซ่อน (ถ้าไม่ได้เลือกในปัจจุบัน) คุณต้องเลือก: แสดงเสียงเพิ่มเติม .. ก่อนเพื่อให้ได้ภาษาที่ต้องการ รหัสของฉันขาดความงดงาม แต่ใช้งานได้ นี่คือ (อัพเดท):

tell application "System Preferences"
    reveal anchor "TTS" of pane "com.apple.preference.speech"
end tell
set tom to 0
tell application "System Events" to tell process "System Preferences"
    tell pop up button 1 of tab group 1 of window 1
        click
        delay 0.2 -- without this the value was sometimes "Loading Voices…"

        if value is "Tom" then
            click menu item "Anna" of menu 1
        else
            click menu item "Mehr Stimmen anzeigen" of menu 1 -- show up all available voice
            set tom to 1
        end if
    end tell
end tell
if tom is 1 then
    delay 0.5
    tell application "System Events" to tell process "System Preferences"
        tell pop up button 1 of tab group 1 of window 1
            click
            delay 0.2 -- without this the value was sometimes "Loading Voices…"
            click menu item "Tom" of menu 1
        end tell
    end tell
end if
quit application "System Preferences"

0

~/Library/Preferences/com.apple.speech.voice.prefs.plistไม่จำเป็นต้องทำการเปลี่ยนแปลงโดยตรงหากคุณได้เสียงbash-scriptซึ่งจะเพิ่มฟังก์ชั่นบรรทัดคำสั่งทั้งหมดที่คุณต้องการ

Apple Script เปลี่ยนเสียงมาตรฐานเป็น Alex โดยใช้ Voices จะมีลักษณะเช่นนี้:

on run
    do shell script "voices -d Alex"
end run

ฉันชอบเทอร์มินัลและแทนที่จะทดสอบการบุกรุกเมนูบาร์หลายภาษาฉันได้สร้างเชลล์สคริปต์ (ที่เรียบง่ายและโง่) ที่เป็นที่ยอมรับ (ซึ่งใช้เสียง) สำหรับความต้องการเปลี่ยนภาษาของฉัน กับมันทั้งหมดที่ฉันทำเพื่อเปลี่ยนภาษาเริ่มต้นคือการแวบเข้ามาในสถานีที่จะพิมพ์หรือspeak swedish speak frenchเหมาะกับเวิร์กโฟลว์ของฉัน ฉันหวังว่าคุณจะสามารถหาทางออกที่เหมาะกับคุณ

# Choose a voice in one of some selected languages
# Use "voices" from https://github.com/mklement0/voices#manual-installation

if [[ $1 = "" ]]
then
    echo "ERROR. No language specified. Type a language as in 'speak hebrew'"
fi
if [[ $1 = "swedish" || $1 = "Swedish" ]]
then
    voices -d Klara
fi
if [[ $1 = "english" || $1 = "English" ]]
then
    voices -d Daniel
fi
if [[ $1 = "american" || $1 = "American" ]]
then
    voices -d Alex
fi
if [[ $1 = "french" || $1 = "French" ]]
then
    voices -d Aurelie
fi
if [[ $1 = "spanish" || $1 = "Spanish" ]]
then
    voices -d Jorge
fi

ผมบันทึกไว้ในสคริปต์ของฉันเป็น "speak.command" chmod มัน + X และเพิ่มนามแฝงที่เหมาะสมเพื่อ .bash_profile speakของฉันที่จะทำให้เกิดความมันด้วยการพิมพ์


-2

ฉันเขียนเครื่องมือแถบสถานะสำหรับสิ่งนั้น:

https://github.com/Fredmf/polyglott

เห็นได้ชัดว่ามันยังคงทำงานในเซีย


1
คุณสามารถขยายคำตอบเพื่อรวมกรณีการใช้ตัวอย่างที่จะช่วยแก้ปัญหา OP ได้หรือไม่ โปรดดูmeta.superuser.com/questions/5329/…
Burgi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.