Apakah ada program text to speech yang akan berjalan pada CPU 8 atau 16-bit?
Saya bertanya-tanya apakah salah satu algoritme teks ke ucapan gaya 1980 kuno disimpan dari pelupaan dan masih tersedia. Mungkin menyenangkan mendengar suara vintage seperti yang muncul di War Games.
Jawaban
"Speech" dari Perangkat Lunak Unggul adalah synthesizer suara perangkat lunak murni yang dijalankan pada BBC Micro (yang menggunakan prosesor 2MHz 6502A, sehingga memiliki daya pemrosesan mentah yang sedikit lebih banyak daripada mesin 8-bit biasa); dijelaskan secara rinci di halaman ini , yang menyatakan bahwa program ini terinspirasi oleh program serupa di C64 dan Spectrum yang mencapainya menggunakan chip suara (jadi Spectrum pasti versi 128K, karena versi 16 / 48K asli tidak memiliki chip suara) tetapi sistem ini hanya menggunakan kontrol langsung dari speaker internal untuk menghasilkan suara.
Pertama, ada peringatan besar. Sebagian besar penyintesis suara awal yang ikonik bukanlah sistem perangkat lunak murni. Misalnya, sistem DECTalk klasik , yang terkenal dengan suara mendiang Stephen Hawking, adalah unit terpisah yang dihubungkan dengan serial RS-232. Ini secara efektif adalah kotak tertutup yang mengirimkan teks ASCII dan menghasilkan audio tingkat baris. Secara internal, saya samar-samar ingat pernah membaca bahwa itu adalah campuran dari prosesor tujuan umum dengan prosesor sinyal khusus dan perangkat keras sintesis audio. The chip Ti LPC pidato sintesis , seperti yang digunakan dalam Speak dan Eja produk, adalah serupa. Chip dapat mensintesis fonem dan kata-kata dasar, dan mikrokontroler atau mikroprosesor harus melakukan analisis teks dan menjalankan chip sintesis.
Faktanya adalah bahwa prosesor klasik 8/16 bit tidak memiliki cukup semangat untuk melakukan sintesis ucapan dalam perangkat lunak dengan baik, setidaknya dalam waktu nyata. Tetap saja, ada sejumlah upaya yang patut dihargai. SAM (Software Automatic Mouth) adalah salah satu yang pertama, dan salah satu yang lebih populer. Ini berjalan di Commodore 64 dan mesin lainnya. Seorang peretas yang cerdas baru-baru ini memindahkan algoritme ke Javascript, sehingga Anda dapat mendengarnya di browser Anda .
Terdapat program text-to-speech Rusia yang ditulis untuk Elektronika BK-0010 pada awal 1980-an, yang panjangnya 023500 bytes == 10048, disebutkan dalam daftar program aplikasi untuk BK-0010 dengan nama ГОВОРУН (" Chatterer ", setelah burung yang berbicara di buku / kartun anak-anak The Mystery of the Third Planet ).
Kualitas suaranya hampir tidak dapat dikenali untuk telinga yang tidak terlatih, sebagian karena komputer hanya memiliki buzzer yang dimanipulasi 1-bit, tetapi dilaporkan telah ditulis atas permintaan All-Union Society of the Blind, dan itu mengambil anggota target penonton sekitar 10-15 menit untuk membiasakan diri dan mulai menggunakannya secara produktif.
Triknya adalah merekam fonem menggunakan pita frekuensi sesempit yang diperlukan untuk pengenalan marjinal, dan menyandikan setiap fonem menggunakan frekuensi serendah mungkin untuk fonem spesifik tersebut. Proses ini telah membuat beberapa fonem, seperti S dan F, terdengar hampir sama, memungkinkan untuk menghemat lebih banyak memori dengan melipatnya.
Tak perlu dikatakan, ada mode ejaan alfabet fonetik, dapat diganti dengan menekan tombol, dan juga tombol "ulangi kata terakhir" dan / atau "ulangi kalimat terakhir".
Apakah 68000 merupakan CPU 16-bit? :) Untuk beberapa itu, dan karena itu , katakanlah , dari 1985, untuk Commodore Amiga diperhitungkan. Ini dapat ditemukan di disk Workbench. Untuk bacaan lebih lanjut, lihat antarmuka narrator.device di wiki AmigaOS:https://wiki.amigaos.net/wiki/Narrator_Device
Dan inilah Steamed Ham yang dibuat ulang menggunakan Say :https://www.youtube.com/watch?v=Rx6mJ4XY0oQ
Lihat:
- Arsip CZ + SK ZX SW
Ada mesin TTS untuk ZX Spectrum (suara digital 1bit, tanpa DAC, tanpa FPU, tanpa instruksi mul / div, ~ 3.5 MHz 8bit Z80 CPU):
Kecal 1.0.2 Memperbarui
asm sangat sederhana, (portabel ke C / C ++ lihat tautan di bawah), permintaan CPU yang sangat rendah. Kualitasnya tidak terlalu bagus
Kecal 2.3
kualitas yang jauh lebih baik
ZX Fone
ini sedikit lebih buruk dari Kecal 2.3
Program Hlasovy
yang satu ini kualitasnya sangat bagus (jauh lebih baik dari Kecal 2.3, kamu bisa mengenali kata-katanya dengan mudah). Ini hanya kode perakitan 801 Bytes.
lihat juga:
- SE / SO: Bisakah arduino mengetahui suhu ruangan melalui panggilan suara menggunakan sim900?
[Sunting1] Port C ++ dari program Hlasový
Saya dengan senang hati mengumumkan bahwa saya berhasil membongkar dan mem- port mesin TTS kuno yang mengagumkan dari Voicesoft ke C ++. Untuk kesederhanaan saya menambahkan header API suara void sound_out(bool on);
yang harus diterapkan untuk menggunakan ini. Ini hanya harus menambahkan sampel ke buffer suara (atau menyinkronkan dengan waktu dan output ke port suara). Di sini kode porting:
//---------------------------------------------------------------------------
//--- ZX Hlasovy program Voicesoft 1985 -----------------------------------
//--- ported to C++ by Spektre ver: 1.000 -----------------------------------
//---------------------------------------------------------------------------
#ifndef _speech_h
#define _speech_h
//---------------------------------------------------------------------------
// API:
void sound_out(bool on); // you need to code this function (should add a sample to sound output)
void say_text(char *txt); // say null terminated text, "a'c'" -> "áč"
//---------------------------------------------------------------------------
// internals:
void say_char(char chr); // internal function for single character (do not use it !!!)
void say_wait(WORD ws); // internal wait (do not use it !!!)
//---------------------------------------------------------------------------
// vars:
bool _sound_on=false; // global state of the reproductor/sound output
//---------------------------------------------------------------------------
// config: (recomputed for 44100 Hz samplerate)
const static BYTE t_speed=5; // [samples] speech speed (pitch)
const static WORD t_pause=183; // [samples] pause between chars
const static WORD t_space=2925; // [samples] pause ` `
const static WORD t_comma=5851; // [samples] pause `,`
//---------------------------------------------------------------------------
// tables:
const static BYTE tab_char0[52]= // 0..25 normal alphabet A..Z
{ // 26..51 diacritic alphabet A..Z
0x00,0x02,0x06,0x0a,0x0e,0x10,0x12,0x16,0x1a,0x1c,0x22,0x26,0x2a,0x2e,0x32,
0x34,0x38,0x42,0x48,0x4a,0x4e,0x50,0x50,0x56,0x1a,0x5c,0x64,0x66,0x70,0x74,
0x7a,0x7c,0xc2,0x84,0x86,0xc2,0xc2,0xc2,0x88,0x8c,0x92,0x94,0xc2,0x9e,0xa6,
0xa8,0xae,0xb0,0xc2,0xc2,0x86,0xbc
};
const static BYTE tab_char1[196]=
{
0x36,0x81,0x34,0x19,0x31,0xab,0x18,0x19,0x91,0xc3,0x34,0x19,0x31,0xe0,0x36,
0x84,0x92,0xe3,0x35,0x19,0x51,0x9c,0x31,0x31,0x34,0x96,0x36,0x87,0x33,0x3a,
0x32,0x3d,0x32,0xc0,0x18,0x19,0x51,0x9c,0x33,0x22,0x31,0xb1,0x31,0x31,0x36,
0xa5,0x31,0x31,0x36,0xa8,0x36,0x8a,0x18,0x19,0x31,0xab,0x18,0x19,0x51,0x1c,
0x34,0x31,0x32,0x34,0x32,0xb7,0x22,0x10,0x13,0x19,0x21,0xae,0x92,0xc3,0x18,
0x19,0x31,0xe0,0x36,0x8d,0x34,0x31,0x32,0x34,0x32,0xb7,0x18,0x19,0x71,0x1c,
0x92,0xc3,0x32,0x31,0x32,0x43,0x32,0x44,0x32,0xc5,0x3f,0x81,0x34,0x19,0x31,
0x2b,0x33,0x3a,0x32,0x3d,0x32,0xc0,0x18,0x19,0x91,0xd3,0x33,0x19,0x71,0x6d,
0x32,0x93,0x3e,0x84,0x92,0x63,0x33,0x3a,0x32,0x3d,0x32,0xc0,0x92,0xf3,0x3e,
0x87,0x31,0x31,0x36,0x25,0x31,0x31,0x35,0x25,0x32,0x93,0x3e,0x8a,0x18,0x19,
0x31,0x2b,0x33,0x3a,0x32,0x3d,0x32,0xc0,0x13,0x19,0x32,0x60,0x13,0x19,0x71,
0xdd,0x92,0xd3,0x18,0x19,0x71,0x6d,0x32,0x93,0x3e,0x8d,0x34,0x31,0x32,0x34,
0x32,0x37,0x33,0x3a,0x32,0x3d,0x32,0xc0,0x32,0x53,0x32,0x54,0x32,0xd5,0x1a,
0x99
};
const static BYTE tab_char2[262]=
{
0x1a,0x99,0xe1,0xc3,0xe1,0xc7,0x8f,0x0f,0xf8,0x03,0x0f,0x07,0xc1,0xe3,0xff,
0x40,0x17,0xff,0x00,0x03,0xf8,0x7c,0xc1,0xf1,0xf8,0x03,0xfe,0x00,0x7f,0xfc,
0x00,0x03,0xf8,0x0f,0x09,0xf1,0xfe,0x03,0xef,0x40,0x17,0xff,0x00,0x03,0xe1,
0x5c,0x35,0xc5,0xaa,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x8e,0x38,0x73,
0xcf,0xf8,0x78,0xc3,0xdf,0x1c,0xf1,0xc7,0xfe,0x03,0xc0,0xff,0x00,0x00,0xff,
0xf8,0x00,0x7f,0xf8,0x03,0xff,0xf0,0x01,0xff,0xe0,0x03,0xaa,0xca,0x5a,0xd5,
0x21,0x3d,0xfe,0x1f,0xf8,0x00,0x00,0x1f,0xff,0xfc,0x20,0x00,0x00,0x03,0xff,
0xff,0x08,0x79,0x00,0x02,0xff,0xe1,0xc7,0x1f,0xe0,0x03,0xff,0xd0,0x01,0xff,
0xf0,0x03,0x7f,0x01,0xfa,0x5f,0xc0,0x07,0xf8,0x0f,0xc0,0xff,0x00,0x42,0xaa,
0xa5,0x55,0x5a,0xaa,0xaa,0x5a,0xa5,0x5a,0xaa,0x55,0x55,0xaa,0xaa,0xa5,0x55,
0xaa,0x5a,0xaa,0xa5,0x55,0xaa,0xaa,0xa5,0x55,0xaa,0xaa,0x55,0xa5,0xa5,0xaa,
0xa5,0xb7,0x66,0x6c,0xd8,0xf9,0xb3,0x6c,0xad,0x37,0x37,0x66,0xfc,0x9b,0x87,
0xf6,0xc0,0xd3,0xb6,0x60,0xf7,0xf7,0x3e,0x4d,0xfb,0xfe,0x5d,0xb7,0xde,0x46,
0xf6,0x96,0xb4,0x4f,0xaa,0xa9,0x55,0xaa,0xaa,0xa5,0x69,0x59,0x9a,0x6a,0x95,
0x55,0x95,0x55,0x6a,0xa5,0x55,0xa9,0x4d,0x66,0x6a,0x92,0xec,0xa5,0x55,0xd2,
0x96,0x55,0xa2,0xba,0xcd,0x00,0x66,0x99,0xcc,0x67,0x31,0x8e,0x66,0x39,0xa6,
0x6b,0x19,0x66,0x59,0xc6,0x71,0x09,0x67,0x19,0xcb,0x01,0x71,0xcc,0x73,0x19,
0x99,0xcc,0xc6,0x67,0x19,0x9a,0xc6,
};
const static BYTE tab_char3[5]={ 0x00,0x2e,0x5a,0x5e,0xfe };
//---------------------------------------------------------------------------
void say_text(char *txt)
{
WORD hl;
BYTE a,b,c;
for (b=0xBB,hl=0;;hl++) // process txt
{
a=b; // a,c char from last iteration
c=b;
if (!a) break; // end of txt
b=txt[hl]; // b actual char
if ((b>='a')&&(b<='z')) b=b+'A'-'a'; // must be uppercase
a=c;
if ((a>='A')&&(a<='Z'))
{
// handle diacritic
if (a!='C'){ a=b; if (a!='\'') a=c; else{ a=c; a+=0x1A; b=0xBB; }}
else{
a=b;
if (a=='H'){ a+=0x1A; b=0xBB; }
else{ if (a!='\'') a=c; else{ a=c; a+=0x1A; b=0xBB; }}
}
// syntetize sound
say_char(a);
continue;
}
if (a==',')say_wait(t_comma);
if (a==' ')say_wait(t_space);
}
}
//----------------------------------------------------------------------
void say_wait(WORD ws)
{
for (;ws;ws--) sound_out(_sound_on);
}
//----------------------------------------------------------------------
void say_char(char chr) // chr = < `A` , `Z`+26 >
{
WORD hl,hl0,cy,cy0;
BYTE a,b,c,ws;
hl=tab_char0[chr-'A'];
for (;;)
{
c =tab_char1[hl ]&0x0F;
c|=tab_char1[hl+1]&0x80;
for (;;)
{
a=tab_char1[hl];
a=(a>>5)&7;
cy=a&1;
hl0=hl;
if (a!=0)
{
b=tab_char3[a];
hl=hl0;
a=tab_char1[hl+1];
hl0=hl;
cy0=(a>>7)&1;
a=((a<<1)&254)|cy;
cy=cy0;
hl=a;
a=0x80;
for (;;)
{
_sound_on=(a&tab_char2[hl]);
for (ws=t_speed;ws;ws--) sound_out(_sound_on);
b--;
if (!b) break;
cy=a&1;
a=((a>>1)&127)|(cy<<7);
if (!cy) continue;
hl++;
}
}
a^=a;
say_wait(t_pause);
c--;
a=c&0x0F;
hl=hl0;
if (a==0) break;
}
cy0=(c>>7)&1;
a=((c<<1)&254)|cy;
cy=cy0;
if (cy) return;
hl+=2;
}
}
//---------------------------------------------------------------------------
#endif
//---------------------------------------------------------------------------
Itu tidak menggunakan libs, file atau apa pun ... Jika lingkungan Anda tidak memilikinya BYTE,WORD
maka gunakan unsigned int
sebagai gantinya ... Saya mencobanya dengan sampling rate 44100Hz pada PC dan suaranya lebih unggul dari TTS lain yang saya coba selama bertahun-tahun.
Suaranya cukup bagus bahkan pada AVR32 (namun membutuhkan reproduktor normal, bukan bip kecil).
Jika Anda tertarik dengan cara kerjanya, lihat ini:
- Memahami / Membalik mesin TTS sederhana (tapi berkualitas baik)
Di mana lebih banyak analisis mendalam (hingga bit terakhir data) dan lebih banyak kode didaktis dan data dapat ditemukan untuk ini.
Berikut demo win32 / waveout kecil untuk pengujian, jangan lupa untuk menulis teks fonetik ... selamat bersenang-senang:
- win32 port TTS
Ini menanggapi kunci-kunci ini:
[enter ]
akan mengirim teks dari kotak edit ke TTS[up arrow]
akan mengembalikan string terakhir ke kotak edit[escape ]
membersihkan kotak edit
Tentu saja ada Acorn Speech System untuk BBC Micro.
Ini membutuhkan dua chip Texas Instruments untuk dipasang di bawah keyboard, jadi itu bukan solusi perangkat lunak murni.

Berbeda dengan sebagian besar jawaban lain dalam hal ini mengambil masukan fonem daripada teks murni tetapi itu berarti bahwa ia memberikan audio yang jauh lebih jelas dan dapat dipahami daripada banyak pesaingnya.
Kembali pada hari saya menggunakannya memang menyediakan alarm dalam pengaturan otomatisasi proses. Itu dianggap jauh lebih aman untuk memiliki panggilan seperti Crane A Descending , atau "Crane B Ascending" daripada memiliki berbagai bleep berbeda yang semua orang lupa yang mana.
Ini terkenal menggunakan suara digital dari Kenneth Kendall , seorang pembaca berita BBC pada saat itu. Dia juga muncul dalam film 2001: A Space Odyssey , berperan sebagai pembaca berita BBC.
Program serupa lainnya dari awal tahun 80-an adalah Software Automatic Mouth . Saya juga memiliki kenangan kabur tentang demo The Voice by Muse Software, untuk Apple] [e. ("Selamat Natal dari Santa dan suara Muse ....")
Texas Instruments TI-99 / 4A dapat melakukan text-to-speech jika Anda memiliki kartrid Terminal Emulator II dan Solid State Speech Synthesizer. (Informasi lebih lanjut tentang yang terakhir dapat ditemukan di manual .)

Untuk Microbee 1980 (z80) ada modul perangkat keras bernama "Bee Talker" yang dihubungkan ke port paralel. Ini terlihat hampir persis seperti unit "Beethoven" dalam gambar ini (terlihat duduk di sebelah "keyboard"), kecuali itu berlabel "Beetalker":

Itu memiliki antarmuka perangkat lunak Text-to-Speech sederhana yang disertakan dengan modul. Apa pun yang Anda ketikkan di konsol akan secara aneh diubah menjadi ucapan. Saya tidak ingat persis apa yang berhasil dengan baik, tetapi terkadang Anda harus salah mengeja kata secara fonetik untuk mendapatkan hasil yang diinginkan.
Modul telah dirilis ulang jika Anda ingin menghubungkannya ke Arduino atau apa pun.
EDIT: Akhirnya menemukan gambar yang lebih baik:

Anda dapat menemukan berbagai inkarnasi dari synthesizer forman yang mendasari DECTalk di sini
Saya ragu Anda bisa mendapatkan hasil yang memuaskan pada prosesor 8-bit. 16-bit, ya (meskipun Anda mungkin perlu menulis ulang kode titik mengambang sebagai titik tetap). Saya berasumsi Macintalk asli menggunakan algoritme yang cukup mirip, meskipun saya tidak pernah melihat kode sumber itu. MacinTalk 3 ("Fred" dan suara terkait), yang telah tersedia di Mac selama lebih dari 30 tahun, menggunakan metode serupa.
Klatt juga menulis cukup dibaca buku yang menjelaskan sistem agak lebih awal.
Pada akhirnya, mungkin memori yang menjadi faktor pembatas untuk sistem tahun 1980-an. Kekuatan pemrosesan prosesor 16 bit tidak masalah untuk sintesis forman, tetapi dalam bahasa Inggris, Anda tidak akan pernah memiliki pengucapan yang sangat akurat tanpa kamus besar atau seperangkat aturan yang sangat besar.
Berikut adalah versi online SAM untuk c64, Anda dapat mengetikkan beberapa teks ke halaman web dan merekam audionya: https://discordier.github.io/sam/
Ada juga plugin musik berdasarkan mac dan atari st yang dirancang untuk peningkatan musik di atas kode mesin ucapan asli: https://www.youtube.com/watch?v=FmaeI5eoeH0&ab_channel=PlogueArtetTechnologie%2CInc. ada versi demo-nya di suatu tempat di web.
IIgs memiliki perangkat keras yang cukup untuk menghasilkan perangkat lunak yang cukup bagus hanya pidato menggunakan SmoothTalker . Mesin bicara dari SmoothTalker digunakan di sejumlah program IIgs lainnya termasuk seri Berbicara untuk membaca dan matematika . Bahkan program mengetik untuk IIgs menggunakan pidato, putri saya menggunakannya dan pidatonya cukup bagus menurut standar saat ini.
Game Perang ... sebenarnya tidak dibuat oleh komputer
Anda menyebut suara Game Perang. Itu bukanlah suara buatan, tapi seorang aktor. Dia mengucapkan kalimat dengan kata-kata dalam urutan terbalik, yang kemudian diedit. Ref:
- https://www.imdb.com/title/tt0086567/trivia#tr5373943
- Video pria 8bit yang disebutkan oleh @RCDAWebmaster tautan ke instan yang relevan
Apa yang selama ini Anda minta: "... diselamatkan dari pelupaan dan masih tersedia"
Iya! Terima kasih kepada pria 8bit untuk informasinya. Kamu bisa:
- mengunjungi https://www.simulationcorner.net/index.php?page=sam
- dapatkan kode sumber https://github.com/s-macke/SAM atau https://github.com/vidarh/SAM
Ini mengkompilasi dan bekerja pada mesin modern.
Solusi khusus perangkat lunak, pada era tersebut
Sepertinya ada solusi berbasis perangkat lunak lengkap (saya belum mengujinya): https://cpcrulez.fr/applications_music-superior_software-speech__MANUEL__ENGLISH.htm
Solusi umum pada saat itu: mesin bicara 8-bit sering menggunakan chip opsional khusus
Seperti disebutkan dalam satu komentar, selama era 8bit, solusi umum menggunakan chip khusus.
- Instrumen Umum SP0256 didemonstrasikan pada halaman yang sama dan misalnya pada Roland di Luar Angkasa dengan SSA-1 Speech Synthesizer dan GLEN HODDLE SOCCER dengan SSA-1 Speech Synthesizer . Setiap chip kurang lebih terspesialisasi, yang paling umum menggunakan suara bahasa Inggris generik.
- MEA8000 lebih fleksibel, memungkinkan beberapa bahasa.
Contoh: SSA-1 untuk Amstrad CPC
Biasanya, ini adalah solusi multi-tier.
Di bawah ini diuraikan contoh SSA-1 BPK Amstrad:
- bagian awal (tingkat tinggi) dari text-to-speech dilakukan pada CPU komputer host, dan mengubah teks biasa (Inggris) menjadi serangkaian alofon (biasanya, 64 berbeda) - ini dapat dilewati menggunakan API yang menyediakan cara untuk meminta serangkaian alofon secara langsung. Pada BPK Amstrad, kedua opsi tersedia: pengguna ditawari untuk memuat perangkat lunak tertentu, membuat perintah tambahan "RSX" tersedia dari Dasar, (dan karenanya dari kode rakitan, juga, meskipun produksi rakitan biasanya akan langsung menargetkan langkah berikutnya karena mereka tidak tidak perlu mengurai kalimat bahasa Inggris umum, hanya pengucapan yang ditentukan sebelumnya yang diucapkan).
- kode alofon dikirimkan ke chip, satu byte per alofon, melalui komunikasi interchip I / O biasa
- pada chip, mikrokontroler waktu nyata mengubah kode alofon menjadi parameter simulasi saluran suara tingkat rendah, dan menyetel secara waktu nyata register perangkat keras untuk memerintahkan langkah berikutnya
- perangkat keras khusus melakukan komputasi digital model saluran suara, dan mengeluarkan sinyal PCM
- langkah digital-ke-analog memberikan sinyal keluaran analog pada tingkat saluran
- penguat membawa sinyal ke tingkat speaker.
Semua langkah tersebut (termasuk speaker) terintegrasi dalam solusi SSA-1 untuk BPK Amstrad. Pada langkah pertama, solusinya adalah perangkat lunak yang berjalan di komputer host, sisanya adalah perangkat keras tambahan.
Detail lebih lanjut tentang SSA-1: Amstrad SSA-1 Speech Synthesizer - CPCWiki
Audio hari-hari awal yang kompatibel dengan IBM PC memiliki beberapa contoh sintesis ucapan. Ini memenuhi syarat untuk kategori 16-bit Anda karena 8088 dan 80286 adalah CPU 16-bit (meskipun 8088 telah dilumpuhkan oleh bus data 8-bit).
Covox Speech Thing adalah port paralel DAC yang dimaksudkan untuk digunakan dengan sintesis ucapan berbasis perangkat lunak. Saya berasumsi bahwa program semacam itu menyertainya, mengingat meskipun ada sejumlah program yang mendukungnya, saya tidak pernah menemukan sesuatu yang berkaitan dengan sintesis ucapan.
Creative Labs mengirimkan program yang disebut Dr Sbaitso dengan kartu Sound Blaster asli. Itu pada dasarnya adalah bot-obrolan ELIZA yang digabungkan dengan synthesizer ucapan (semua dilakukan dalam perangkat lunak). Menjadi kartu ISA 8-bit yang bekerja di PC IBM 16-bit asli, ini pasti memenuhi syarat.
Sound Blaster 16 ASP dan Sound Blaster AWE32 yang lebih baru menyertakan chip Prosesor Sinyal Canggih, yang menyediakan kemampuan sintesis suara dengan akselerasi perangkat keras, tetapi tidak mendapatkan banyak, jika ada, penggunaan di luar perangkat lunak Creative sendiri. Apakah keduanya memenuhi syarat masih bisa diperdebatkan, mengingat itu adalah kartu ISA 16-bit yang mungkin akan berfungsi di 286, tetapi yang keluar ketika semua orang menggunakan CPU 32-bit 386 atau 486.
Chip synthesizer OPL2 FM yang mendukung Adlib dan kemampuan musik kartu Sound Blaster awal termasuk mode Composite Sine Modeling yang dapat digunakan untuk sintesis suara dengan bantuan perangkat keras, tetapi sejauh yang saya tahu itu tidak pernah digunakan. Panduan pemrograman Adlib dari tahun 1987 menyebutkan fitur tersebut, kemudian segera menutupnya dengan mengatakan ada metode berkualitas lebih baik yang tersedia.
Memang ada beberapa program yang dapat menghasilkan ucapan melalui Speaker PC, tetapi saya tidak tahu apakah mereka sedang mensintesisnya atau hanya memutar ulang sampel, dan saya tidak ingat nama apa pun.
Tentu; misalnya, Naval Research Laboratory menerbitkan dokumen (NRL-7948) pada tahun 1976 berjudul: "Terjemahan Otomatis Teks Bahasa Inggris ke Fonetik dengan Cara Aturan Huruf-ke-Suara" (salinan di sini)
Ini dalam kemampuan mesin 8-bit. (Saya sendiri telah menerapkan algoritme beberapa kali pada mikrokontroler - dalam hal ini, aturan hanya memerlukan lebih dari 8.000 byte. Anda memerlukan sedikit lebih banyak untuk kode yang menjalankannya.)
Ini melakukan operasi teks-ke-ucapan, mengubah teks bahasa Inggris menjadi urutan fonem yang kemudian akan dimasukkan ke dalam perangkat sintesis. Bagian ini biasanya berupa perangkat keras.
Sunting: Jika Anda penasaran dengan hasil menggunakan ruleset ini, berikut adalah contoh output dari text-to-speech'ing lirik ke The Doors 'Hello'. Ada beberapa kesalahan pengucapan yang lucu; misalnya 'sky' diucapkan seperti yang kita lakukan 'ski'.
Jika Anda ingin riwayat sintesis ucapan yang layak, lihat video ini oleh pria 8 bit ini
Macintosh 1984 asli (yang dijalankan pada Motorola 68000) memiliki Macintalk. Ini berjalan dengan cukup baik. Ini menyuarakan salah satu karakter dalam film WALL-E. Itu muncul di sejumlah besar tempat budaya pop. Lihat bagian Dalam Budaya Populer darihttps://en.m.wikipedia.org/wiki/PlainTalk
Saya yakin jika saya mengeluarkan Mac 1984 saya dari lemari dan menemukan disket yang tepat, saya bisa meyakinkannya untuk berbicara. Itu adalah trik pesta yang sangat menakjubkan di masa lalu