Bagaimana Anda bisa membuat perintah OS X mengatakan berbicara karakter IPA?

5

Saya memiliki sekitar 200 baris Beowulf yang saya dan beberapa teman saya render menjadi International Phonetic Alphabet sekitar satu setengah tahun yang lalu. Pada saat itu, salah satu alat yang kami gunakan untuk memeriksa pengucapan kembali adalah sayperintah OS X.

Inilah enam baris pertama menurut edisi puisi Klaeber yang diubah menjadi IPA, yang saya tahu pasti saybisa dibaca dengan baik, karena saya sudah menjalankannya sendiri di MacBook dari mana saya mengetik pertanyaan ini:

hwæt we ˈɡɑːrˌdenɑ in ˈjæːɑrdɑɣum
ˈðeːodˌkyniŋɡɑ θrymː jeˈfruːnon
huː ðɑ æðelɪŋɡɑs ˈelːen ˈfremːedon!
oft ʃyld ʃefiŋ ˈʃæɑðenɑ θræːɑtum,
ˈmɑniɣum mæjθum ˈmeːodusetlə ovˈtæːax,
'ejzudə eːorɑs, syðːɑnærest wæːɑrð

Sekarang, cobalah sekuat tenaga, saya tidak bisa membacanya dengan benar di atas. Saya sudah mencoba semua suara berbahasa Inggris (suara pra 10,5 lucu ), tetapi suara yang saya yakin bekerja sebelumnya, seperti Fiona dan Kate, sekarang tampaknya mengabaikan karakter IPA sepenuhnya.

Ini adalah perintah pengujian yang agak tidak-KERING-y yang telah saya gunakan kali ini:

say --rate=150 --voice=Fiona "/hwæt we ˈɡɑːrˌdenɑ in ˈjæːɑrdɑɣum/"
say --voice=Fiona "/hwæt we ˈɡɑːrˌdenɑ in ˈjæːɑrdɑɣum/"
say --rate=150 --voice=Fiona "hwæt we ˈɡɑːrˌdenɑ in ˈjæːɑrdɑɣum"
say --voice=Fiona "hwæt we ˈɡɑːrˌdenɑ in ˈjæːɑrdɑɣum"
say --voice=Fiona hwæt we ˈɡɑːrˌdenɑ in ˈjæːɑrdɑɣum
say --voice=Fiona /hwæt we ˈɡɑːrˌdenɑ in ˈjæːɑrdɑɣum/

Tetapi mereka semua melompati karakter IPA sepenuhnya kecuali untuk æ, yang kadang-kadang diucapkan. ɣ tentu saja tidak pernah berhasil masuk ke dalam sintesis lagi, yang sudah pasti dilakukan sebelumnya.

Apakah saya kehilangan sesuatu, atau mungkinkah karena suatu alasan mereka menghapus fitur IPA dalam pembaruan terkini? Saya cukup yakin itu Mavericks yang kami gunakan, tapi itu bisa saja Snow Leopard.

Benjamin Nolan
sumber
Referensi menebak kutipan Perang Dunia II disukai dalam pertanyaan, @ncdownpat. ;)
Benjamin Nolan
Saya telah memikirkan hal ini sedikit lebih banyak, dan saya mengosongkan laptop saya dan menginstal ulang OS X dari awal di awal tahun ini. Saya kira mungkin ada sesuatu di Leopard atau Snow Leopard yang mendukung fitur ini yang telah dihapus di versi yang lebih baru, seperti X11 dihapus antara 10.6 dan 10.7. Akan sangat memalukan. Ini mulai terlihat seperti saya mungkin lebih baik menulis kait saya sendiri ke mesin TTS untuk berbicara bahasa Inggris Kuno. : /
Benjamin Nolan

Jawaban:

7

Berikut adalah script Ruby yang mengambil string Unicode IPA teks dan mengkonversi ke OS X sayperintah sintaks fonetik .

Tampar kode Ruby ini ke dalam file — sebut saja itu ipa2say.rb. Jadikan file dapat dieksekusi (mis chmod u+x ipa2say.rb.). Jalankan executable, perpipkan beberapa teks IPA ke sana. Akan keluar beberapa teks fonetik ASCII.

Kemudian jalankan saydengan [[inpt PHON]]arahan.

Jadi, sebuah contoh. Katakanlah Anda ingin sayteks IPA "ˌɪntərˈnæʃənəl fəˈnɛtɪk ˈælfəˌbɛt fəˈrɛvər". Dari baris perintah:

echo "ˌɪntərˈnæʃənəl fəˈnɛtɪk ˈælfəˌbɛt fəˈrɛvər" | ./ipa2say.rb

Itu akan dimuntahkan:

IXntrnAESnl fAXnEHtIXk AElfbEHt frEHvr

Anda kemudian menjalankan: say "[[inpt PHON]]IXntrnAESnl fAXnEHtIXk AElfbEHt frEHvr"

Ini skripnya.

#!/usr/bin/ruby -w

map =   {       'æ' => 'AE',
                'eɪ' => 'EY',
                'ɑ' => 'AO',
                'əˈ' => 'AX',
                'i' => 'IY',
                'ɛ' => 'EH',
                'ɪ' => 'IH',
                'aɪ' => 'AY',
                'ɪ' => 'IX',
                'ɑ' => 'AA',
                'u' => 'UW',
                'ʊ' => 'UH',
                'ʌ' => 'UX',
                'oʊ' => 'OW',
                'aʊ' => 'AW',
                'ɔɪ' => 'OY',
                'b' => 'b',
                'ʧ' => 'C',
                'd' => 'd',
                'ð' => 'D',
                'f' => 'f',
                'g' => 'g',
                'h' => 'h',
                'ʤ' => 'J',
                'k' => 'k',
                'l' => 'l',
                'm' => 'm',
                'n' => 'n',
                'ŋ' => 'N',
                'p' => 'p',
                'r' => 'r',
                's' => 's',
                'ʃ' => 'S',
                't' => 't',
                'θ' => 'T',
                'v' => 'v',
                'w' => 'w',
                'j' => 'y',
                'z' => 'z',
                'ʒ' => 'Z',
                'ɜ' => '',
                ' ' => ' ',
                'ˈ' => ''
        }

text = ARGF.read

substring = ''

text.split("").each do |c|

    substring << c

    if substring.length == 2
        if map.has_key? substring
            print map[ substring ]
        else
            front = substring[0]
            if map.has_key? front
                print map[ front ]
            end
            back = substring[1]
            if map.has_key? back
                print map[ back ]
            end
        end

        substring = ''
    end
end
OldPeculier
sumber
3
Ini luar biasa, walaupun perlu dicatat bahwa [[inpt PHON]] hanya didukung pada suara yang ada di OS X sebelum 10.6. Agak menyebalkan, karena kualitasnya jauh lebih rendah daripada suara-suara modern, dan alangkah baiknya bisa memasukkan data ke Fiona, misalnya. Baiklah!
Benjamin Nolan
Ya itu tidak bekerja dengan suara-suara yang lebih baru.
adib
Saya menemukan daftar suara-suara pra-10.6 ini: alvinalexander.com/blog/post/mac-os-x/… Yang non-gimmicky adalah: Agnes, Kathy, Putri, Vicki, Victoria, Bruce, Fred, Junior, Ralph . Saya belum memeriksa yang mana yang benar-benar berfungsi dengan IPA.
tobych
1

Cobalah tanda kurung / garis miring di sekitar setiap kata jika tidak bekerja dengan frasa. Ini tidak berfungsi:

say "/hwæt we ˈɡɑːrˌdenɑ in ˈjæːɑrdɑɣum/"

Tetapi ini tampaknya:

say "/hwæt/ /we/ /ˈɡɑːrˌdenɑ/ /in/ /ˈjæːɑrdɑɣum/"

Kurung kotak juga berfungsi:

say "[huː] [ðɑ] [æðelɪŋɡɑs] [ˈelːen] [ˈfremːedon]"

Semoga berhasil!

(Diedit karena saya membaca ulang dan melihat bahwa Anda mencoba garis miring di sekitar keseluruhan frasa.)

Woody
sumber
1
Hmm ... Saya tidak yakin itu benar-benar membacanya sebagai IPA. Kedengarannya seperti melewatkan semua karakter non-Inggris ketika saya menjalankan perintah itu. Jika saya lakukan say -v Alex "/hwæt/ /we/ /ˈɡɑːrˌdenɑ/ /in/ /ˈjæːɑrdɑɣum/", itu mengatakan "Weh wiardena yeardaou">. <Terima kasih telah mencoba. :)
Benjamin Nolan