Java Speech API - Java Speech API

The Java Speech API (JSAPI) - bu dastur dasturlash interfeysi buyruqbozlik taniqli shaxslar, diktant tizimlari va nutq sintezatorlari. JSAPI interfeysni aniqlasa ham, masalan, uchinchi tomonlar tomonidan yaratilgan bir nechta dasturlar mavjud FreeTTS.

Asosiy texnologiyalar

Ikki asosiy nutq texnologiyalari Java Speech API orqali qo'llab-quvvatlanadi: nutq sintezi va nutqni aniqlash.

Nutq sintezi

Nutq sintezi dastur, applet yoki foydalanuvchi tomonidan yaratilgan matndan sintetik nutqni ishlab chiqarishning teskari jarayonini ta'minlaydi. U ko'pincha matndan nutqqa o'tish texnologiyasi deb nomlanadi.

Matndan nutq ishlab chiqarishning asosiy bosqichlari quyidagilardan iborat:

  • Tarkibni tahlil qilish: paragraflar, jumlalar va boshqa tuzilmalar qaerda boshlanib tugashini aniqlash uchun kirish matnini qayta ishlaydi. Ko'pgina tillar uchun tinish belgilari va formatlash ma'lumotlari ushbu bosqichda qo'llaniladi.
  • Matnni oldindan qayta ishlash: Tilning maxsus konstruktsiyalari uchun kiritilgan matnni tahlil qiladi. Ingliz tilida qisqartirishlar, qisqartmalar, sanalar, vaqtlar, raqamlar, valyuta miqdori, elektron pochta manzillari va boshqa ko'plab shakllar uchun maxsus davolash kerak. Boshqa tillar ushbu shakllar uchun maxsus ishlov berishga muhtoj va aksariyat tillar boshqa ixtisoslashgan talablarga ega.

Ushbu dastlabki ikki bosqichning natijasi yozma matnning og'zaki shakli hisoblanadi. Yozma va og'zaki matn o'rtasidagi farqlarning misollari:

Sent-Metyu kasalxonasi Main St .-> "Sent-Metyu kasalxonasi asosiy ko'chada" 55374-schyotga 20 dollar qo'shing .-> "Besh besh, uch etti to'rtga hisob-kitoblarga yigirma dollar qo'shing."

Qolgan qadamlar og'zaki matnni nutqqa aylantiradi:

  • Matnni fonemaga o'tkazish: har bir so'zni fonemaga aylantiradi. Fonema - bu tilda tovushning asosiy birligi.
  • Prozodiya tahlili: jumla uchun mos prozodiyani aniqlash uchun gap tuzilishini, so'zlarni va fonemalarni qayta ishlaydi.
  • To'lqin shaklini ishlab chiqarish: Har bir jumla uchun audio to'lqin shaklini yaratish uchun fonemalar va prosody ma'lumotlaridan foydalaniladi.

Nutqni sintezatorlar yuqorida tavsiflangan har qanday ishlov berish bosqichlarida xatolarga yo'l qo'yishi mumkin. Inson quloqlari ushbu xatolarni aniqlash uchun yaxshi sozlangan, ammo ishlab chiquvchilar tomonidan ehtiyotkorlik bilan ishlash xatolarni minimallashtirish va nutq chiqishi sifatini yaxshilashga yordam beradi. Java Speech API 1 ga asoslanib Java Speech API-ni belgilash tili (JSML), yangi versiyadan foydalaniladi SSML nutq sintezatorining chiqish sifatini yaxshilashning ko'plab usullarini taqdim etish.

Nutqni aniqlash

Nutqni aniqlash kompyuterlarga nutq tilini tinglash va aytilganlarni aniqlash imkoniyatini beradi. Boshqacha qilib aytganda, u nutqni o'z ichiga olgan audio kirishni matnga aylantirish orqali ishlaydi.

Oddiy nutqni tanib oluvchining asosiy bosqichlari quyidagilardan iborat:

  • Grammatika dizayni: foydalanuvchi tomonidan so'zlashishi mumkin bo'lgan so'zlarni va ular gapirish uslublarini belgilaydi.
  • Signalni qayta ishlash: Kiruvchi audio spektrini (ya'ni chastotasini) tahlil qiladi.
  • Fonemalarni aniqlash: spektr naqshlarini tan olinayotgan til fonemalari naqshlari bilan taqqoslaydi.
  • So'zni tanib olish: Fonemalarning ketma-ketligini faol grammatikalar tomonidan ko'rsatilgan so'zlar va so'zlar bilan taqqoslaydi.
  • Natija hosil qilish: Ilovaga kiruvchi audioda aniqlovchi aniqlagan so'zlar haqida ma'lumot beradi.

A grammatika Java Speech API-dagi ob'ekt bo'lib, foydalanuvchi qaysi so'zlarni aytishi kutilayotganligini va ushbu so'zlar qanday shakllarda bo'lishi mumkinligini ko'rsatadi. Grammatikalar nutqni taniydiganlar uchun muhimdir, chunki ular tanib olish jarayonini cheklaydi. Ushbu cheklovlar tanib olishni tezroq va aniqroq qiladi, chunki tanib oluvchi g'alati jumlalarni tekshirishi shart emas.

Java Speech API 1 ikkita asosiy grammatik turni qo'llab-quvvatlaydi: qoida grammatikalari va diktant grammatikalari. Ushbu turlar turli xil, shu jumladan dasturlarning grammatikalarni qanday o'rnatganligi bilan farq qiladi; ularga imkon beradigan gap turlari; natijalar qanday ta'minlanadi; talab qilinadigan hisoblash resurslari miqdori; va ulardan dasturlarni tuzishda qanday foydalanilishi. Qoida grammatikalari JSAPI 1 tomonidan belgilanadi JSGF, Java nutq grammatikasi formati. Yangi JSAPI 2 so'nggi versiyasini qo'llab-quvvatlaydi SRGS format. JSAPI 2 diktantni qo'llab-quvvatlamaydi.

Java Speech API-ning sinflari va interfeyslari

Java Speech API-ni tashkil etuvchi turli xil sinflar va interfeyslar quyidagi uchta paketga birlashtirilgan:

  • javax.speech: Umumiy nutq mexanizmi uchun sinflar va interfeyslarni o'z ichiga oladi
  • javax.speech.synthesis: nutq sintezi uchun sinflar va interfeyslarni o'z ichiga oladi.
  • javax.speech.recognition: nutqni aniqlash uchun sinflar va interfeyslarni o'z ichiga oladi.

EngineManager klassi barcha Java Speech API dasturlari ishlatadigan zavod sinfiga o'xshaydi. U nutqni sintez qilish va nutqni aniqlash dvigatellariga kirishni ta'minlash uchun statik usullarni taqdim etadi. Dvigatel interfeysi Java Speech API-ga mos keladigan nutq mexanizmi nutq dasturlari uchun taqdim etishi kerak bo'lgan umumiy operatsiyalarni o'z ichiga oladi.

Gapirish dasturlari birinchi navbatda nutq dvigatelining xususiyatlari va holatini olish va nutq dvigateli uchun resurslarni ajratish va taqsimlash kabi harakatlarni amalga oshirish uchun usullardan foydalanishi mumkin. Bundan tashqari, Dvigatel interfeysi nutq mexanizmi tomonidan ishlab chiqarilgan yoki qayta ishlangan audio oqimni to'xtatib turish va davom ettirish mexanizmlarini ochib beradi. Oqimlarni AudioManager boshqarishi mumkin. Dvigatel interfeysi qo'shimcha nutq sintezi va nutqni aniqlash funktsiyasini belgilaydigan Synthesizer va Recognizer interfeyslari tomonidan subklassga ajratilgan. Synthesizer interfeysi Java Speech API-ga mos keladigan nutqni sintez qilish vositasi nutq dasturlari uchun taqdim etishi kerak bo'lgan operatsiyalarni o'z ichiga oladi.

Java Speech API hodisalarni ko'rib chiqishga asoslangan. Nutq dvigateli tomonidan vujudga kelgan voqealarni aniqlash va talabga binoan boshqarish mumkin. Nutq voqealari EngineListener interfeysi orqali, aniqrog'i RecognizerListener va SynthesizerListener orqali boshqarilishi mumkin.

Tegishli xususiyatlar

Java Speech API oldin yozilgan Java jamoatchilik jarayoni (JCP) va maqsadli Java platformasi, Standard Edition (Java SE). Keyinchalik, Java Speech API 2 (JSAPI2) sifatida yaratilgan JSR 113 JCP ostida. Ushbu API Java platformasi, Micro Edition (Java ME), lekin Java SE-ga ham mos keladi.

Adabiyotlar