RFC 4463 - A Media Resource Control Protocol (MRCP) Develope(8)

时间:2006-11-02 来源: 作者: 点击:
qdtext=LWS/%x21/%x23-5B/%x5D-7E /UTF8-NONASCII quoted-pair="\"(%x00-09/%x0B-0C /%x0E-7F) token=1*(alphanum/"-"/"."/"!"/"%"/"*" /"_"/"+"/"`"/"’"/"~") reserved=";"/"/"/"?"/":"/"@"/""/"=" /"+"/"$"/","
  

   qdtext         =  LWS / %x21 / %x23-5B / %x5D-7E
                     / UTF8-NONASCII

   quoted-pair    =  "\" (%x00-09 / %x0B-0C
                     / %x0E-7F)

   token          =  1*(alphanum / "-" / "." / "!" / "%" / "*"
                      / "_" / "+" / "`" / "’" / "~" )

   reserved       =  ";" / "/" / "?" / ":" / "@" / "&" / "="
                     / "+" / "$" / ","

   mark           =  "-" / "_" / "." / "!" / "~" / "*" / "’"
                     / "(" / ")"

   unreserved     =  alphanum / mark

   char           =  unreserved / escaped /
                     ":" / "@" / "&" / "=" / "+" / "$" / ","

   alphanum       =  ALPHA / DIGIT

   escaped        =  "%" HEXDIG HEXDIG

   absoluteURI    =  scheme ":" ( hier-part / opaque-part )

   relativeURI    =  ( net-path / abs-path / rel-path )
                     [ "?" query ]

   hier-part      =  ( net-path / abs-path ) [ "?" query ]

   net-path       =  "//" authority [ abs-path ]

   abs-path       =  "/" path-segments

   rel-path       =  rel-segment [ abs-path ]

   rel-segment    =  1*( unreserved / escaped / ";" / "@"
                     / "&" / "=" / "+" / "$" / "," )

   opaque-part    =  uric-no-slash *uric

   uric           =  reserved / unreserved / escaped

   uric-no-slash  =  unreserved / escaped / ";" / "?" / ":"
                     / "@" / "&" / "=" / "+" / "$" / ","

   path-segments  =  segment *( "/" segment )

   segment        =  *pchar *( ";" param )

   scheme         =  ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )

   authority      =  srvr / reg-name

   srvr           =  [ [ userinfo "@" ] hostport ]

   reg-name       =  1*( unreserved / escaped / "$" / ","
                     / ";" / ":" / "@" / "&" / "=" / "+" )

   query          =  *uric

   userinfo       =  ( user ) [ ":" password ] "@"

   user           =  1*( unreserved / escaped
                       / user-unreserved )

   user-unreserved  =  "&" / "=" / "+" / "$" / "," / ";"
                       / "?" / "/"

   password         =  *( unreserved / escaped /
                       "&" / "=" / "+" / "$" / "," )

   hostport         =  host [ ":" port ]

   host             =  hostname / IPv4address / IPv6reference

   hostname         =  *( domainlabel "." ) toplabel [ "." ]

   domainlabel      =  alphanum
                       / alphanum *( alphanum / "-" ) alphanum

   toplabel       =    ALPHA / ALPHA *( alphanum / "-" )
                       alphanum

   IPv4address    =    1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT "."
                       1*3DIGIT

   IPv6reference  =    "[" IPv6address "]"

   IPv6address    =    hexpart [ ":" IPv4address ]

   hexpart        =    hexseq / hexseq "::" [ hexseq ] / "::"
                       [ hexseq ]

   hexseq         =    hex4 *( ":" hex4)

   hex4           =    1*4HEXDIG

   port           =    1*DIGIT

   generic-message =   start-line
                       message-header
                       CRLF
                       [ message-body ]

   message-body   =    *OCTET

   start-line     =    request-line / status-line / event-line

   request-line   =    method-name SP request-id SP
                                 mrcp-version CRLF

   status-line    =    mrcp-version SP request-id SP
                       status-code SP request-state CRLF

   event-line     =    event-name SP request-id SP
                       request-state SP mrcp-version CRLF

   message-header =    1*(generic-header / resource-header)

   generic-header =    active-request-id-list
                  /    proxy-sync-id
                  /    content-id
                  /    content-type
                  /    content-length
                  /    content-base
                  /    content-location
                  /    content-encoding
                  /    cache-control
                  /    logging-tag
   ; -- content-id is as defined in RFC 2392 and RFC 2046

   mrcp-version   =    "MRCP" "/" 1*DIGIT "." 1*DIGIT

   request-id     =    1*DIGIT

   status-code    =    1*DIGIT

   active-request-id-list =  "Active-Request-Id-List" ":"
                            request-id *("," request-id) CRLF

   proxy-sync-id  =    "Proxy-Sync-Id" ":" 1*ALPHA CRLF

   content-length =    "Content-Length" ":" 1*DIGIT CRLF

   content-base   =    "Content-Base" ":" absoluteURI CRLF

   content-type   =    "Content-Type" ":" media-type

   media-type     =    type "/" subtype *( ";" parameter )

   type           =    token

   subtype        =    token

   parameter      =    attribute "=" value

   attribute      =    token

   value          =    token / quoted-string

   content-encoding =  "Content-Encoding" ":"
                       *WSP content-coding
                       *(*WSP "," *WSP content-coding *WSP )
                       CRLF

   content-coding   =  token

   content-location =  "Content-Location" ":"
                       ( absoluteURI / relativeURI )  CRLF

   cache-control  =    "Cache-Control" ":"
                       *WSP cache-directive
                       *( *WSP "," *WSP cache-directive *WSP )
                       CRLF

   cache-directive =   "max-age" "=" delta-seconds
                   /   "max-stale" "=" delta-seconds
                   /   "min-fresh" "=" delta-seconds

   logging-tag    =    "Logging-Tag" ":" 1*ALPHA CRLF

   resource-header =   recognizer-header
                       /    synthesizer-header

   method-name    =    synthesizer-method
                       /    recognizer-method

   event-name     =    synthesizer-event
                       /    recognizer-event

   request-state  =    "COMPLETE"
                  /    "IN-PROGRESS"
                  /    "PENDING"

   synthesizer-method = "SET-PARAMS"
                  /    "GET-PARAMS"
                  /    "SPEAK"
                  /    "STOP"
                  /    "PAUSE"
                  /    "RESUME"
                  /    "BARGE-IN-OCCURRED"
                  /    "CONTROL"

   synthesizer-event = "SPEECH-MARKER"
                  /    "SPEAK-COMPLETE"

   synthesizer-header =     jump-target
                      /     kill-on-barge-in
                      /     speaker-profile
                      /     completion-cause
                      /     voice-parameter
                      /     prosody-parameter
                      /     vendor-specific
                      /     speech-marker
                      /     speech-language
                      /     fetch-hint
                      /     audio-fetch-hint
                      /     fetch-timeout
                      /     failed-uri
                      /     failed-uri-cause
                      /     speak-restart
                      /     speak-length

   recognizer-method = "SET-PARAMS"
                      /    "GET-PARAMS"
                      /    "DEFINE-GRAMMAR"
                      /    "RECOGNIZE"
                      /    "GET-RESULT"
                      /    "RECOGNITION-START-TIMERS"
                      /    "STOP"

   recognizer-event  =      "START-OF-SPEECH"
                     /      "RECOGNITION-COMPLETE"

   recognizer-header =      confidence-threshold
                     /      sensitivity-level
                     /      speed-vs-accuracy
                     /      n-best-list-length

                     /      no-input-timeout
                     /      recognition-timeout
                     /      waveform-url
                     /      completion-cause
                     /      recognizer-context-block
                     /      recognizer-start-timers
                     /      vendor-specific
                     /      speech-complete-timeout
                     /      speech-incomplete-timeout
                     /      dtmf-interdigit-timeout
                     /      dtmf-term-timeout
                     /      dtmf-term-char
                     /      fetch-timeout
                     /      failed-uri
                     /      failed-uri-cause
                     /      save-waveform
                     /      new-audio-channel
                     /      speech-language

   jump-target       =  "Jump-Size" ":" speech-length-value CRLF

   speech-length-value =    numeric-speech-length
                     /      text-speech-length

   text-speech-length =     1*ALPHA SP "Tag"

   numeric-speech-length =("+" / "-") 1*DIGIT SP
                       numeric-speech-unit

   numeric-speech-unit =    "Second"
                       /    "Word"
                       /    "Sentence"
                       /    "Paragraph"

   delta-seconds  =    1*DIGIT

   kill-on-barge-in =  "Kill-On-Barge-In" ":" boolean-value CRLF

   boolean-value  =    "true" / "false"

   speaker-profile =    "Speaker-Profile" ":" absoluteURI CRLF

   completion-cause =  "Completion-Cause" ":" 1*DIGIT SP
                       1*ALPHA CRLF

   voice-parameter =   "Voice-" voice-param-name ":"
                       voice-param-value CRLF

   voice-param-name =  1*ALPHA

   voice-param-value = 1*alphanum

   prosody-parameter = "Prosody-" prosody-param-name ":"
                        prosody-param-value CRLF

   prosody-param-name =     1*ALPHA

   prosody-param-value = 1*alphanum

   vendor-specific =   "Vendor-Specific-Parameters" ":"
                      vendor-specific-av-pair
                       *[";" vendor-specific-av-pair] CRLF

   vendor-specific-av-pair = vendor-av-pair-name "="
                             vendor-av-pair-value

   vendor-av-pair-name = 1*ALPHA

   vendor-av-pair-value = 1*alphanum

   speech-marker  =    "Speech-Marker" ":" 1*ALPHA CRLF

   speech-language =   "Speech-Language" ":" 1*ALPHA CRLF

   fetch-hint     =    "Fetch-Hint" ":" 1*ALPHA CRLF

   audio-fetch-hint =  "Audio-Fetch-Hint" ":" 1*ALPHA CRLF

   fetch-timeout  =    "Fetch-Timeout" ":" 1*DIGIT CRLF

   failed-uri     =    "Failed-URI" ":" absoluteURI CRLF

   failed-uri-cause =  "Failed-URI-Cause" ":" 1*ALPHA CRLF

   speak-restart  =    "Speak-Restart" ":" boolean-value CRLF

   speak-length   =    "Speak-Length" ":" speech-length-value
                       CRLF
   confidence-threshold =   "Confidence-Threshold" ":"
                            1*DIGIT CRLF

   sensitivity-level = "Sensitivity-Level" ":" 1*DIGIT CRLF

   speed-vs-accuracy = "Speed-Vs-Accuracy" ":" 1*DIGIT CRLF

   n-best-list-length = "N-Best-List-Length" ":" 1*DIGIT CRLF

   no-input-timeout =  "No-Input-Timeout" ":" 1*DIGIT CRLF

   recognition-timeout = "Recognition-Timeout" ":" 1*DIGIT CRLF

   waveform-url   =    "Waveform-URL" ":" absoluteURI CRLF

   recognizer-context-block = "Recognizer-Context-Block" ":"
                       1*ALPHA CRLF

   recognizer-start-timers = "Recognizer-Start-Timers" ":"
                       boolean-value CRLF

   speech-complete-timeout = "Speech-Complete-Timeout" ":"
                       1*DIGIT CRLF

   speech-incomplete-timeout = "Speech-Incomplete-Timeout" ":"
                       1*DIGIT CRLF

   dtmf-interdigit-timeout = "DTMF-Interdigit-Timeout" ":"
                             1*DIGIT CRLF

   dtmf-term-timeout = "DTMF-Term-Timeout" ":" 1*DIGIT CRLF

   dtmf-term-char =    "DTMF-Term-Char" ":" CHAR CRLF

   save-waveform  =    "Save-Waveform" ":" boolean-value CRLF

   new-audio-channel = "New-Audio-Channel" ":"
                       boolean-value CRLF

Appendix B.  Acknowledgements

   Andre Gillet (Nuance Communications)
   Andrew Hunt (SpeechWorks)
   Aaron Kneiss (SpeechWorks)
   Kristian Finlator (SpeechWorks)
   Martin Dragomirecky (Cisco Systems, Inc.)
   Pierre Forgues (Nuance Communications)
   Suresh Kaliannan (Cisco Systems, Inc.)
   Corey Stohs (Cisco Systems, Inc.)
   Dan Burnett (Nuance Communications)

Authors’ Addresses

   Saravanan Shanmugham
   Cisco Systems, Inc.
   170 W. Tasman Drive
   San Jose, CA 95134

   EMail: sarvi@cisco.com

   Peter Monaco
   Nuasis Corporation
   303 Bryant St.
   Mountain View, CA 94041

   EMail: peter.monaco@nuasis.com

   Brian Eberman
   Speechworks, Inc.
   695 Atlantic Avenue
   Boston, MA 02111

   EMail: brian.eberman@speechworks.com

Full Copyright Statement

   Copyright (C) The Internet Society (2006).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78 and at www.rfc-editor.org/copyright.html, and
   except as set forth therein, the authors retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.

Acknowledgement

   Funding for the RFC Editor function is provided by the IETF
   Administrative Support Activity (IASA).
------分隔线----------------------------
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容