Velocity powered by Wavelink
โครงสร้างไฟล์ไวยากรณ์
ไฟล์ไวยากรณ์จะต้องเป็นไปตามโครงสร้างเฉพาะสำหรับ Speakeasy เพื่อการแปลข้อมูลเนื้อหาของไฟล์ที่ถูกต้อง
ตัวอย่างต่อไปนี้คือไฟล์ไวยากรณ์พื้นฐาน:
#BNF+EM V2.1;
/*
ไวยากรณ์: usa_states.bnf
คำอธิบาย:
ไฟล์นี้คือไฟล์ไวยากรณ์ที่เป็นที่จดจำชื่อรัฐบางรัฐในสหรัฐอเมริกาได้
ฉันจะพูดยังไงดี?
คุณสามารถพูดชื่อใดก็ได้ของรัฐในสหรัฐอเมริกาต่อไปนี้
*/
!grammar usa_states;
!start <state>;
<state>:
อลาบาม่า
| อลาสก้า
| คอนเนคทิคัต
| ฟลอริดา
| ไอดาโฮ
| แคนซัส
| "นิวเจอร์ซีย์"
| "นิวยอร์ก"
#BNF+EM V1.1;
ไฟล์ไวยากรณ์แต่ละไฟล์จะต้องเริ่มต้นด้วยข้อความคำสั่ง เช่น #BNF+EM V1.1; ซึ่งระบุวิธีที่ Speakeasy ควรจัดการกับไฟล์ไวยากรณ์คุณไม่จำเป็นต้องแก้ไขบรรทัดนี้
/* */ หรือ //
ในการสร้างความคิดเห็นหรือข้อมูลที่เอ็นจินเพิกเฉย คุณสามารถเริ่มต้นบรรทัดด้วย // หรือแนบข้อความในตัวทำเครื่องหมาย /* และ */ คุณสามารถแก้ไขคำอธิบายและส่วนฉันจะพูดยังไงดีได้ เพื่ออธิบายการเปลี่ยนแปลงที่คุณทำในไฟล์ไวยากรณ์
!grammar [filename]
หากคุณเปลี่ยนชื่อของไฟล์ไวยากรณ์ คำสั่ง !grammar
จะต้องใช้ชื่อไฟล์ใหม่ตัวอย่างเช่น หากชื่อของไฟล์เปลี่ยนเป็น VoicePick.bnf คำสั่งจะอ่านเป็น: !grammar VoicePick;
!start <state>;
คำสั่ง !start จะระบุว่ากลุ่มของคำใดบ้างในไวยากรณ์ที่สามารถใช้ได้เมื่อมีไวยากรณ์ที่ใช้งานอยู่ในตัวอย่างด้านบน เอ็นจินจะฟังคำทั้งหมดในกฎ <state>
หากมีกฎมากกว่าหนึ่งกฎที่แสดงอยู่และมีกฎเพียงกฎเดียวที่อ้างอิงโดยคำสั่ง กฎอื่นๆ ทั้งหมดจะถูกเพิกเฉย
<state>: อลาบาม่า | คอนเนตทิคัต |...
คำและวลีที่แสดงในระหว่าง <state>: และ ; สุดท้ายคือคำที่ไวยากรณ์จะยอมรับ คำแต่ละคำหรือวลีแต่ละวลีจะต้องคั่นด้วย | (สัญลักษณ์ OR) คำศัพท์อาจแสดงเป็นรายการในบรรทัดเดียวกันทั้งหมดหรือจัดให้อยู่ในแนวตั้งเพื่อให้แก้ไขได้ง่ายยิ่งขึ้น
ในการปรับปรุงการรับรู้สำหรับคำที่อาจคล้ายกันกับคำอื่น เช่น New York และ New Jersey ให้แนบวลีใน "" (อัญประกาศ)วิธีนี้จะบังคับเอ็นจิน Speakeasy ให้เปรียบเทียบวลีที่ยอมรับอย่างใกล้ชิดยิ่งกว่าเดิมกับการตอบสนองของผู้ใช้
กฎหลายกฎ
ในไฟล์ไวยากรณ์บางไฟล์ กฎหลักจะถูกแบ่งออกเป็นส่วนย่อยเพื่อให้จัดการคำได้ง่ายขึ้น หากคุณมีกฎมากกว่าหนึ่งกฎในไฟล์ ตรวจสอบให้แน่ใจว่ากฎเหล่านั้นถูกรวมอยู่ในกฎที่ใช้ในบรรทัด !start
!start <Speech>;
<Speech>: <YesNo> | <Maybe>;
<YesNo>: ใช่ | ไม่;
<Maybe>: อาจจะ;
ในตัวอย่างนี้ กฎ <Speech> จะมีกฎ <YesNo> และกฎ <Maybe> ดังนั้น เอ็นจินจะฟังคำทั้งหมดทั้งในกฎ <YesNo> และกฎ <Maybe>
คำที่คล้ายกัน
หากคุณมีคำที่ออกเสียงคล้ายกัน คุณอาจได้รับผลลัพธ์การรู้จำเสียงที่ไม่ดีนัก ในการปรับปรุงการจดจำให้ดียิ่งขึ้น ให้ใช้วลีที่มีความยาวมากกว่าเดิมและมีความแตกต่างอย่างชัดเจนตัวอย่างเช่น แทนที่จะใช้คำทั่วๆ ไปอย่าง “เร็วขึ้น” และ “เร็วที่สุด” ให้แทนที่คำเหล่านั้นด้วยวลีอย่างเช่น “ไปให้เร็วขึ้น” และ “ความเร็วเต็มพิกัด”
บทความนี้เป็นประโยชน์หรือไม่?
หัวข้อ:
ไม่ถูกต้อง
ไม่สมบูรณ์
ไม่ใช่สิ่งที่ฉันคาดไว้
อื่นๆ
ลิขสิทธิ์ © Ivanti 2560สงวนลิขสิทธิ์