Java Speech API
જાવા સ્પીચ API (JSAPI) એ આદેશ અને નિયંત્રણ ઓળખકર્તાઓ, ડિક્ટેશન સિસ્ટમ્સ અને સ્પીચ સિન્થેસાઇઝર્સના ક્રોસ-પ્લેટફોર્મ સપોર્ટ માટે એક એપ્લિકેશન પ્રોગ્રામિંગ ઇન્ટરફેસ છે. જોકે JSAPI માત્ર ઇન્ટરફેસને વ્યાખ્યાયિત કરે છે, ત્યાં તૃતીય પક્ષો દ્વારા બનાવવામાં આવેલા ઘણા અમલીકરણ છે, ઉદાહરણ તરીકે ફ્રીટીટીએસ. મુખ્ય તકનીકો જાવા સ્પીચ API દ્વારા બે મુખ્ય સ્પીચ તકનીકોને ટેકો આપવામાં આવે છેઃ સ્પીચ સંશ્લેષણ અને સ્પીચ રેકગ્નિશન. વાણી સંશ્લેષણ વાણી સંશ્લેષણ એપ્લિકેશન, એપ્લેટ અથવા વપરાશકર્તા દ્વારા પેદા થયેલ લખાણમાંથી કૃત્રિમ વાણી ઉત્પન્ન કરવાની વિપરીત પ્રક્રિયા પ્રદાન કરે છે. તેને ઘણીવાર ટેક્સ્ટ-ટુ-સ્પીચ ટેકનોલોજી તરીકે ઓળખવામાં આવે છે. લખાણમાંથી વાણી ઉત્પન્ન કરવાના મુખ્ય પગલાં નીચે મુજબ છેઃ માળખું વિશ્લેષણઃ ફકરા, વાક્યો અને અન્ય માળખાઓ ક્યાંથી શરૂ થાય છે અને સમાપ્ત થાય છે તે નિર્ધારિત કરવા માટે ઇનપુટ લખાણની પ્રક્રિયા કરે છે. મોટાભાગની ભાષાઓ માટે, વિરામચિહ્નો અને ફોર્મેટિંગ ડેટાનો ઉપયોગ આ તબક્કામાં થાય છે. ટેક્સ્ટ પ્રી-પ્રોસેસિંગઃ ભાષાની વિશેષ રચનાઓ માટે ઇનપુટ ટેક્સ્ટનું વિશ્લેષણ કરે છે. અંગ્રેજીમાં, સંક્ષિપ્ત શબ્દો, ટૂંકાક્ષરો, તારીખો, સમય, સંખ્યાઓ, ચલણની રકમ, ઈ-મેલ સરનામાંઓ અને અન્ય ઘણા સ્વરૂપો માટે વિશેષ સારવાર જરૂરી છે. અન્ય ભાષાઓને આ સ્વરૂપો માટે વિશેષ પ્રક્રિયાની જરૂર પડે છે, અને મોટાભાગની ભાષાઓમાં અન્ય વિશેષ જરૂરિયાતો હોય છે. આ પ્રથમ બે પગલાનું પરિણામ લેખિત લખાણનું બોલાયેલું સ્વરૂપ છે. અહીં લેખિત અને બોલાયેલા લખાણ વચ્ચેના તફાવતના ઉદાહરણો છેઃ સેન્ટ મેથ્યુઝ હોસ્પિટલ મેઇન સ્ટ્રીટ પર છે-> "સેન્ટ મેથ્યુઝ હોસ્પિટલ મેઇન સ્ટ્રીટ પર છે" $20 એકાઉન્ટમાં 55374 ઉમેરો. -> "પાંચ પાંચ, ત્રણ સાત ચારમાં વીસ ડોલર ઉમેરો". બાકીના પગલાંઓ બોલાયેલા લખાણને વાણીમાં રૂપાંતરિત કરે છેઃ લખાણ-થી-ધ્વનિ રૂપાંતરણઃ દરેક શબ્દને ધ્વનિમાં રૂપાંતરિત કરે છે. ધ્વનિ એ ભાષામાં ધ્વનિનો મૂળભૂત એકમ છે. પ્રોસોડી વિશ્લેષણઃ વાક્ય માટે યોગ્ય પ્રોસોડી નક્કી કરવા માટે વાક્ય માળખું, શબ્દો અને ધ્વનિની પ્રક્રિયા કરે છે. વેવફોર્મ પ્રોડક્શનઃ દરેક વાક્ય માટે ઓડિયો વેવફોર્મ બનાવવા માટે ધ્વનિ અને પ્રોસોડી માહિતીનો ઉપયોગ કરે છે. સ્પીચ સિન્થેસાઇઝર્સ ઉપર વર્ણવેલ કોઈપણ પ્રક્રિયા પગલાંમાં ભૂલો કરી શકે છે. માનવ કાન આ ભૂલોને શોધવા માટે સારી રીતે ગોઠવાયેલા છે, પરંતુ વિકાસકર્તાઓ દ્વારા સાવચેતીપૂર્વક કામ ભૂલોને ઘટાડી શકે છે અને વાણીની ગુણવત્તામાં સુધારો કરી શકે છે. સ્પીચ રેકગ્નિશન કોમ્પ્યુટરને બોલાતી ભાષા સાંભળવાની અને શું કહેવામાં આવ્યું છે તે નક્કી કરવાની ક્ષમતા પ્રદાન કરે છે. બીજા શબ્દોમાં કહીએ તો, તે વાણી ધરાવતા ઓડિયો ઇનપુટને લખાણમાં રૂપાંતરિત કરીને પ્રક્રિયા કરે છે. લાક્ષણિક વાણી ઓળખકર્તાના મુખ્ય પગલાં નીચે મુજબ છેઃ વ્યાકરણની રચનાઃ વપરાશકર્તા દ્વારા બોલી શકાય તેવા શબ્દો અને તેઓ કઈ રીતે બોલી શકાય તે પેટર્નને વ્યાખ્યાયિત કરે છે. સિગ્નલ પ્રક્રિયાઃ આવતા ઓડિયોની સ્પેક્ટ્રમ (એટલે કે આવર્તન) લાક્ષણિકતાઓનું વિશ્લેષણ કરે છે. ધ્વનિ ઓળખઃ વર્ણપટની પેટર્નની સરખામણી ઓળખાતી ભાષાના ધ્વનિની પેટર્ન સાથે કરે છે. શબ્દ ઓળખઃ સક્રિય વ્યાકરણ દ્વારા નિર્દિષ્ટ શબ્દો અને શબ્દોની પેટર્ન સામે સંભવિત ધ્વનિના ક્રમની સરખામણી કરે છે. પરિણામ જનરેશનઃ એપ્લિકેશનને આવતા ઓડિયોમાં ઓળખકર્તાએ શોધી કાઢેલા શબ્દો વિશેની માહિતી પ્રદાન કરે છે. વ્યાકરણ એ જાવા સ્પીચ API માં એક ઑબ્જેક્ટ છે જે સૂચવે છે કે વપરાશકર્તા કયા શબ્દો કહેવાની અપેક્ષા રાખે છે અને તે શબ્દો કઈ પેટર્નમાં આવી શકે છે. વાણી ઓળખનારાઓ માટે વ્યાકરણ મહત્વપૂર્ણ છે કારણ કે તેઓ માન્યતા પ્રક્રિયાને અવરોધે છે. આ અવરોધો માન્યતાને ઝડપી અને વધુ સચોટ બનાવે છે કારણ કે ઓળખકર્તાએ વિચિત્ર વાક્યોની તપાસ કરવાની જરૂર નથી. જાવા સ્પીચ API 1 બે મૂળભૂત વ્યાકરણ પ્રકારોને ટેકો આપે છેઃ નિયમ વ્યાકરણ અને ડિક્ટેશન વ્યાકરણ. આ પ્રકારો વિવિધ રીતે અલગ પડે છે, જેમાં એપ્લિકેશનો વ્યાકરણને કેવી રીતે સુયોજિત કરે છે; તેઓ જે વાક્યોને મંજૂરી આપે છે તેના પ્રકારો; પરિણામો કેવી રીતે પ્રદાન કરવામાં આવે છે; જરૂરી કોમ્પ્યુટેશનલ સંસાધનોની માત્રા; અને એપ્લિકેશન ડિઝાઇનમાં તેનો ઉપયોગ કેવી રીતે થાય છે. નિયમ વ્યાકરણને JSAPI 1 માં JSGF, જાવા સ્પીચ ગ્રામર ફોર્મેટ દ્વારા વ્યાખ્યાયિત કરવામાં આવે છે. જાવા સ્પીચ API ના વર્ગો અને ઇન્ટરફેસો જાવા સ્પીચ API બનાવતા વિવિધ વર્ગો અને ઇન્ટરફેસોને નીચેના ત્રણ પેકેજોમાં જૂથબદ્ધ કરવામાં આવ્યા છેઃ javax.speech: સામાન્ય સ્પીચ એન્જિન માટે વર્ગો અને ઇન્ટરફેસો ધરાવે છે. javax.speech.synthesis: વાણી સંશ્લેષણ માટે વર્ગો અને ઇન્ટરફેસો ધરાવે છે. javax.speech.recognition: વાણી ઓળખ માટે વર્ગો અને ઇન્ટરફેસો ધરાવે છે. એન્જિન મેનેજર વર્ગ એ ફેક્ટરી વર્ગ જેવો છે જેનો ઉપયોગ તમામ જાવા સ્પીચ API કાર્યક્રમો દ્વારા થાય છે. તે વાણી સંશ્લેષણ અને વાણી ઓળખ એન્જિનની પહોંચને સક્ષમ કરવા માટે સ્થિર પદ્ધતિઓ પ્રદાન કરે છે. એન્જિન ઇન્ટરફેસ સામાન્ય કામગીરીને સમાવિષ્ટ કરે છે જે જાવા સ્પીચ API-સુસંગત સ્પીચ એન્જિન સ્પીચ એપ્લિકેશન્સ માટે પ્રદાન કરે છે. સ્પીચ એપ્લિકેશન્સ મુખ્યત્વે સ્પીચ એન્જિનના ગુણધર્મો અને સ્થિતિને પુનઃપ્રાપ્ત કરવા અને સ્પીચ એન્જિન માટે સંસાધનોની ફાળવણી અને ફાળવણી જેવી ક્રિયાઓ કરવા માટે પદ્ધતિઓનો ઉપયોગ કરી શકે છે. વધુમાં, એન્જિન ઇન્ટરફેસ સ્પીચ એન્જિન દ્વારા પેદા અથવા પ્રક્રિયા કરાયેલ ઓડિયો સ્ટ્રીમને થોભાવવા અને ફરી શરૂ કરવા માટેની પદ્ધતિઓને ખુલ્લી પાડે છે. ઓડિયો મેનેજર સ્ટ્રીમ્સમાં હેરફેર કરી શકે છે. એન્જિન ઇન્ટરફેસને સિન્થેસાઇઝર અને રેકગ્નિઝર ઇન્ટરફેસો દ્વારા પેટા વર્ગીકૃત કરવામાં આવે છે, જે વધારાના વાણી સંશ્લેષણ અને વાણી ઓળખ કાર્યક્ષમતાને વ્યાખ્યાયિત કરે છે. સિન્થેસાઇઝર ઇન્ટરફેસ વાણી કાર્યક્રમો માટે જાવા સ્પીચ API-સુસંગત વાણી સંશ્લેષણ એન્જિનની કામગીરીને સમાવી લે છે. જાવા સ્પીચ API ઇવેન્ટ હેન્ડલિંગ પર આધારિત છે. સ્પીચ એન્જિન દ્વારા પેદા થતી ઘટનાઓને ઓળખી શકાય છે અને જરૂરિયાત મુજબ નિયંત્રિત કરી શકાય છે. સ્પીચ ઇવેન્ટ્સને એન્જિનલિસ્ટનર ઇન્ટરફેસ દ્વારા નિયંત્રિત કરી શકાય છે, ખાસ કરીને રેકગ્નિઝરલિસ્ટનર અને સિન્થેસાઇઝરલિસ્ટનર દ્વારા. જાવા સ્પીચ API જાવા કોમ્યુનિટી પ્રોસેસ (JCP) પહેલાં લખવામાં આવ્યું હતું અને જાવા પ્લેટફોર્મ, સ્ટાન્ડર્ડ એડિશન (જાવા SE) ને લક્ષિત કરવામાં આવ્યું હતું. ત્યારબાદ, JCP હેઠળ JSR 113 તરીકે જાવા સ્પીચ API 2 (JSAPI2) બનાવવામાં આવ્યું હતું. આ API જાવા પ્લેટફોર્મ, માઇક્રો એડિશન (જાવા ME) ને લક્ષ્ય બનાવે છે, પરંતુ જાવા SE સાથે પણ સુસંગત છે. JSAPI 1 ઓપન સોર્સ JSAPI 2 રેપર માટે સન/ઓરેકલ દ્વારા જાવા સ્પીચ API FAQ આ તકનીકનો ઉપયોગ વિવિધ સુરક્ષા હેતુઓ માટે જાવા API માટે કરવામાં આવી રહ્યો છે.