RFC 4313
Requirements for Distributed Control of Automatic Speech Recognition (ASR), Speaker Identification/Speaker Verification (SI/SV), and Text-to-Speech (TTS) Resources
Status of this Memo ๐ธ
Okay, so this memo is giving information, not a standard. It's for the Internet community, and it does not specify an Internet standard of any kind. Distribution is totally unlimited, so share it with everyone ๐ .
Copyright Notice ๐
Copyright (C) The Internet Society (2005).
Abstract โจ
This doc is about what's needed for a protocol that controls distributed speech processing of audio streams ๐ง. When it says speech processing, it means three things: automatic speech recognition (ASR), speaker recognition (which covers both speaker identification (SI) and speaker verification (SV)), and text-to-speech (TTS). SIP and Real Time Streaming Protocol (RTSP) already handle rendezvous and control for general media streams, but speech processing brings extra needs that none of the existing IETF protocols cover ๐.
Table of Contents ๐
1. Introduction ....................................................3
1.1. Document Conventions .......................................3
2. SPEECHSC Framework ..............................................4
2.1. TTS Example ................................................5
2.2. Automatic Speech Recognition Example .......................6
2.3. Speaker Identification example .............................6
3. General Requirements ............................................7
3.1. Reuse Existing Protocols ...................................7
3.2. Maintain Existing Protocol Integrity .......................7
3.3. Avoid Duplicating Existing Protocols .......................7
3.4. Efficiency .................................................8
3.5. Invocation of Services .....................................8
3.6. Location and Load Balancing ................................8
3.7. Multiple Services ..........................................8
3.8. Multiple Media Sessions ....................................8
3.9. Users with Disabilities ....................................9
3.10. Identification of Process That Produced Media or
Control Output ............................................9
4. TTS Requirements ................................................9
4.1. Requesting Text Playback ...................................9
4.2. Text Formats ...............................................9
4.2.1. Plain Text ..........................................9
4.2.2. SSML ................................................9
4.2.3. Text in Control Channel ............................10
4.2.4. Document Type Indication ...........................10
4.3. Control Channel ...........................................10
4.4. Media Origination/Termination by Control Elements .........10
4.5. Playback Controls .........................................10
4.6. Session Parameters ........................................11
4.7. Speech Markers ............................................11
5. ASR Requirements ...............................................11
5.1. Requesting Automatic Speech Recognition ...................11
5.2. XML .......................................................11
5.3. Grammar Requirements ......................................12
5.3.1. Grammar Specification ..............................12
5.3.2. Explicit Indication of Grammar Format ..............12
5.3.3. Grammar Sharing ....................................12
5.4. Session Parameters ........................................12
5.5. Input Capture .............................................12
6. Speaker Identification and Verification Requirements ...........13
6.1. Requesting SI/SV ..........................................13
6.2. Identifiers for SI/SV .....................................13
6.3. State for Multiple Utterances .............................13
6.4. Input Capture .............................................13
6.5. SI/SV Functional Extensibility ............................13
7. Duplexing and Parallel Operation Requirements ..................13
7.1. Full Duplex Operation .....................................14
7.2. Multiple Services in Parallel .............................14
7.3. Combination of Services ...................................14
8. Additional Considerations (Non-Normative) ......................14
9. Security Considerations ........................................15
9.1. SPEECHSC Protocol Security ................................15
9.2. Client and Server Implementation and Deployment ...........16
9.3. Use of SPEECHSC for Security Functions ....................16
10. Acknowledgements ..............................................17
11. References ....................................................18
11.1. Normative References .....................................18
11.2. Informative References ...................................18
1. Introduction โจ
Lots of IETF protocols already exist for this stuff ๐ . SIP [6] handles setting up and tearing down media sessions. Media Gateway Control Protocol (MGCP) [7] and Media Gateway Controller (MEGACO) [8] handle low-level media control. RTSP [9] handles recording and playback. This document is all about the requirements for one or more protocols that control network elements doing Automated Speech Recognition (ASR), speaker identification or verification (SI/SV), and turning text into audio, which is also called Text-to-Speech (TTS). So many multimedia apps would love having ASR and TTS as a distributed network resource ๐. The scope here is only the distributed control of ASR, SI/SV, and TTS servers.
A huge range of systems could use one unified way to control TTS, ASR, and SI/SV ๐. Think Voice over IP (VoIP) gateways to the Public Switched Telephone Network (PSTN), IP telephones, media servers, and wireless mobile devices that get their speech services from servers on the network.
There are already a bunch of proprietary ASR and TTS APIs, plus two IETF documents that tackle this problem [13], [14]. But those existing docs have real issues ๐ฌ. They mix up the semantics of existing protocols, and they're so close to other protocols that they're confusing for the person actually implementing them.
This document lays out requirements for protocols that support distributed speech processing of audio streams ๐ฆ. To keep things simple and avoid confusion with existing protocol proposals, the requirements are framed as a "framework" for the distributed control of speech resources. That framework is called "SPEECHSC", short for Speech Services Control ๐.
1.1. Document Conventions ๐
In this document, the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as described in RFC 2119 [3].
2. SPEECHSC Framework ๐ง
Here's Figure 1, the SPEECHSC framework for speech processing ๐.
+-------------+
| Application |
| Server |\
+-------------+ \ SPEECHSC
SIP, VoiceXML, / \
etc. / \
+------------+ / \ +-------------+
| Media |/ SPEECHSC \---| ASR, SI/SV, |
| Processing |-------------------------| and/or TTS |
RTP | Entity | RTP | Server |
=====| |=========================| |
+------------+ +-------------+
Figure 1: SPEECHSC Framework
So the "Media Processing Entity" is a network element that processes media ๐ถ. It could be a pure media handler, or it could also have an associated SIP user agent, VoiceXML browser, or some other control entity. The "ASR, SI/SV, and/or TTS Server" is the network element that does the back-end speech processing ๐ฅ. It can output an RTP stream made from text input (that's TTS), or send back recognition results based on an RTP stream coming in (that's ASR and SI/SV). The "Application Server" is the network element that tells the Media Processing Entity what changes to make to the media stream ๐ . Those instructions can be set up through a session protocol like SIP, or passed along in a client/server exchange like VoiceXML. The framework lets either the Media Processing Entity or the Application Server control the ASR or TTS Server using SPEECHSC as a control protocol. That's why SPEECHSC shows up twice in the diagram, and honestly it's giving symmetry ๐ฆ.
The entities can live in one physical box each, or get mixed together in different combos ๐ธ. For example, a VoiceXML [11] gateway can put the ASR and TTS functions on the same platform as the Media Processing Entity. Heads up, though: VoiceXML gateways themselves are outside the scope of this protocol ๐ญ. You can also combine the Application Server and the Media Processing Entity, like you'd do in an interactive voice response (IVR) platform ๐.
You can also split the Media Processing Entity into one entity that controls the media endpoints and other entities that process media directly ๐. That's what a decomposed gateway using MGCP or MEGACO looks like. Again, though, this decomposition is orthogonal to the scope of SPEECHSC ๐. The subsections that follow give some example use cases of SPEECHSC, one each for TTS, ASR, and SI/SV. They're only meant to be illustrative. They don't restrict the framework's scope or limit the decomposition or configuration to what's shown in the examples โจ.
2.1. TTS Example ๐
okay so this one is a super simple SPEECHSC setup for a Text-to-Speech service ๐ It's for playing announcements to someone on a phone with no screen, so there's no way to show them text errors ๐ซถ The scenario is in Figure 2 below. In this figure, the VoIP gateway is playing two roles at once: it's the Media Processing Entity and the Application Server from Figure 1 ๐
+---------+
_| SIP |
_/ | Server |
+-----------+ SIP/ +---------+
| | _/
+-------+ | VoIP |_/
| POTS |___| Gateway | RTP +---------+
| Phone | | (SIP UA) |=========| |
+-------+ | |\_ | SPEECHSC|
+-----------+ \ | TTS |
\__ | Server |
SPEECHSC | |
\_| |
+---------+
Figure 2: Text-to-Speech Example of SPEECHSC
so the POTS phone on the left tries to make a call ๐ The VoIP gateway (acting as a SIP UA) tries to set up a SIP session to finish the call, but it gets an error, like a SIP "486 Busy Here" response ๐ญ Without SPEECHSC, the gateway would most likely just play a busy signal to the POTS phone. But with SPEECHSC access to a TTS server, it can give a spoken error message ๐ฆ So the gateway builds a text error string using info from the SIP messages, like "Your call to 978-555-1212 did not go through because the called party was busy" โจ Then it uses SPEECHSC to set up an association with a SPEECHSC server, opens an RTP stream between itself and the server, and sends a TTS request for that error message. The message gets played to the user on the POTS phone ๐
2.2. Automatic Speech Recognition Example
this example shows a VXML-enabled media processing entity and its application server using SPEECHSC to power an ASR-based user interface through an Interactive Voice Response (IVR) system ๐ง The VXML-client is the "media processing entity," and the IVR application server is the "application server" from Figure 1. The setup is in Figure 3 below ๐ธ
+------------+
| IVR |
_|Application |
VXML_/ +------------+
+-----------+ __/
| |_/ +------------+
PSTN Trunk | VoIP | SPEECHSC| |
=============| Gateway |---------| SPEECHSC |
|(VXML voice| | ASR |
| browser) |=========| Server |
+-----------+ RTP +------------+
Figure 3: Automatic Speech Recognition Example
in this one, people call in to get stock quotes ๐ The VoIP gateway picks up their PSTN call. An IVR application sends VXML scripts to the gateway to run the conversation ๐ The VXML interpreter on the gateway sends the user's media stream to the SPEECHSC ASR server, and uses SPEECHSC to control that ASR server.
So, for example, the user says the name of a stock after an IVR prompt. The SPEECHSC ASR server tries to recognize the name and sends the results back to the VXML gateway ๐ The gateway then uses standard VXML mechanisms to tell the IVR Application what was recognized. The IVR Application can then go look up the info ๐ And the answer can be sent back to the user with text-to-speech! This example doesn't show that part, but it works the same way as the scenario in section Section 2.1 ๐ซถ
2.3. Speaker Identification example
this one is about using speaker identification for voice-actuated login on an IP phone ๐ค The setup is in Figure 4 below. In this figure, the IP Phone is playing both the "Media Processing Entity" and the "Application Server" roles from Figure 1 ๐ง
+-----------+ +---------+
| | RTP | |
| IP |=========| SPEECHSC|
| Phone | | TTS |
| |_________| Server |
| | SPEECHSC| |
+-----------+ +---------+
Figure 4: Speaker Identification Example
here, a user speaks into a SIP phone to get "logged in" to it, so they can make and receive calls using their identity and preferences ๐ฅน The IP phone uses the SPEECHSC framework to set up an RTP stream between itself and the SPEECHSC SI/SV server, and to request verification. The SV server checks the user's identity and sends the result back to the phone via SPEECHSC, including the necessary login credentials ๐ The IP Phone can then use that identity directly to identify the user on outgoing calls, fetch the user's preferences from a configuration server, or request authorization from an Authentication, Authorization, and Accounting (AAA) server. Any combo of those works too ๐
Since this example uses SPEECHSC for a security-related function, be sure to check out the related material in Section 9 ๐จ
3. General Requirements ๐
3.1. Reuse Existing Protocols
to the extent feasible, the SPEECHSC framework SHOULD use existing protocols ๐ค
3.2. Maintain Existing Protocol Integrity
while meeting the requirement in Section 3.1, the SPEECHSC framework MUST NOT redefine the semantics of an existing protocol. Said differently, we will not break existing protocols or cause backward-compatibility problems ๐ โโ๏ธ
3.3. Avoid Duplicating Existing Protocols
to the extent feasible, SPEECHSC SHOULD NOT duplicate the functionality of existing protocols. For example, network announcements using SIP [12] and RTSP [9] already define how to request playback of audio ๐ The focus of SPEECHSC is new functionality that existing protocols don't address, or extending existing protocols within the limits of the requirement in Section 3.2 โจ If an existing protocol can be gracefully extended to support SPEECHSC requirements, those extensions are acceptable ways to meet the requirements ๐
as a corollary, the SPEECHSC should not require a separate protocol to perform functions that could be easily added into the SPEECHSC protocol (like redirecting media streams, or discovering capabilities), unless it's similarly easy to embed that protocol directly into the SPEECHSC framework ๐งฉ
3.4. Efficiency
the SPEECHSC framework SHOULD use protocol elements known to result in efficient operation โก Techniques to consider include:
- Re-use of transport connections across sessions
- Piggybacking of responses on requests in the reverse direction
- Caching of state across requests
3.5. Invocation of Services
the SPEECHSC framework MUST be compliant with the IAB Open Pluggable Edge Services (OPES) [4] framework ๐ So the applicability of the SPEECHSC protocol will be specified as occurring between clients and servers, at least one of which is operating directly on behalf of the user who requested the service ๐ซถ
3.6. Location and Load Balancing
to the extent feasible, the SPEECHSC framework SHOULD use existing schemes for service location and load balancing, like the Service Location Protocol [13] or DNS SRV records [14] ๐บ๏ธ If those facilities aren't deemed adequate, the SPEECHSC framework MAY define additional load balancing techniques ๐
3.7. Multiple Services
the SPEECHSC framework MUST permit multiple services to operate on a single media stream, so that the same or different servers can be doing speech recognition, speaker identification or verification, etc., in parallel ๐ถ
3.8. Multiple Media Sessions
the SPEECHSC framework MUST allow a 1:N mapping between session and RTP channels ๐ For example, a single session might include an outbound RTP channel for TTS, an inbound one for ASR, and a different inbound one for SI/SV (for instance, if different elements on the Media Resource Element process them) ๐ฆ
Note: All of these can be described via SDP, so if SDP is used for media channel description, this requirement is met "for free" ๐ฅณ
3.9. Users with Disabilities
the SPEECHSC framework must have sufficient capabilities to address the critical needs of people with disabilities ๐ซถ In particular, the set of requirements in RFC 3351 [5] MUST be taken into account by the framework. It's also important that implementers of SPEECHSC clients and servers know that some interaction modalities of SPEECHSC may be inconvenient or just plain inappropriate for disabled users ๐ Hearing-impaired individuals may find TTS of limited use. Speech-impaired users may not be able to use ASR or SI/SV capabilities ๐ญ So systems employing SPEECHSC MUST provide alternative interaction modes or avoid using speech processing entirely ๐ธ
3.10. Identification of Process That Produced Media or Control Output
the client of a SPEECHSC operation SHOULD be able to figure out, via the SPEECHSC framework, which speech process produced the output ๐ For example, an RTP stream with spoken TTS output should be identifiable as TTS output, and the recognized utterance from ASR should be identifiable as having come from ASR processing ๐ง
4. TTS Requirements ๐๏ธ
4.1. Requesting Text Playback
the SPEECHSC framework MUST allow a Media Processing Entity or Application Server, using a control protocol, to request that the TTS Server play back text as voice in an RTP stream ๐
4.2. Text Formats
4.2.1. Plain Text
the SPEECHSC framework MAY assume that all TTS servers can read plain text ๐ For reading plain text, the framework MUST allow the language and voicing to be indicated via session parameters. For finer control over those properties, see [1] ๐
4.2.2. SSML
the SPEECHSC framework MUST support Speech Synthesis Markup Language (SSML)[1] <speak> basics, and SHOULD support other SSML tags ๐ซง The framework assumes all TTS servers can read SSML formatted text. Internationalization of TTS in the SPEECHSC framework, including multi-lingual output within a single utterance, is handled with SSML xml:lang tags ๐
4.2.3. Text in Control Channel
the SPEECHSC framework assumes all TTS servers accept text over the SPEECHSC connection, for reading over the RTP connection ๐ The framework assumes the server can accept text either "by value" (embedded in the protocol) or "by reference" (for example, by de-referencing a Uniform Resource Identifier (URI) embedded in the protocol) ๐
4.2.4. Document Type Indication
a document type specifies the syntax the text to be read is encoded in ๐ The SPEECHSC framework MUST be capable of explicitly indicating the document type of the text to be processed, instead of forcing the server to infer the content by other means ๐งโโ๏ธ
4.3. Control Channel ๐
okay so the SPEECHSC framework MUST be able to set up the control channel between the client and server on a per-session basis ๐. a session is loosely a single "call" or "dialog" โจ. the protocol SHOULD be able to keep one long-lived control channel going for multiple sessions back to back ๐, and it MAY also do shorter time horizons too, like as tiny as processing one single utterance ๐ฆ.
4.4. Media Origination/Termination by Control Elements ๐ธ
bestie, the SPEECHSC framework MUST NOT force the controlling element (the application server or media processing entity) to accept or originate media streams ๐ โโ๏ธ. the media streams MAY source & sink from the controlled element (ASR, TTS, etc.) instead, which is so clean ๐ .
4.5. Playback Controls ๐ฌ
the SPEECHSC framework MUST support "VCR controls" for controlling the playout of streaming media output from SPEECHSC processing ๐ผ, and it MUST allow for servers with varying capabilities to accommodate those controls ๐ซถ. the protocol SHOULD let clients say which controls they want to use, and let servers report which ones they honor ๐ค. these capabilities include:
- The ability to jump in time to the location of a specific marker. ๐
- The ability to jump in time, forwards or backwards, by a specified amount of time. Valid time units MUST include seconds, words, paragraphs, sentences, and markers. โฑ๏ธ
- The ability to increase and decrease playout speed. ๐โโ๏ธ
- The ability to fast-forward and fast-rewind the audio, where snippets of audio are played as the server moves forwards or backwards in time. โฉ
- The ability to pause and resume playout. โธ๏ธ
- The ability to increase and decrease playout volume. ๐
these controls SHOULD be made easily available to users through the client user interface and through per-user customization capabilities of the client ๐. this is literally so important for hearing-impaired users ๐ฅบ, who will likely want settings and control regimes that are different from what works for non-impaired users. main character accessibility energy ๐.
4.6. Session Parameters ๐ง
the SPEECHSC framework MUST support specifying session parameters, like language, prosody, and voicing ๐ฃ๏ธ. slay, the basics.
4.7. Speech Markers ๐ท๏ธ
the framework MUST accommodate speech markers, with capability at least as flexible as what SSML [1] provides โจ. it MUST further provide an efficient mechanism for reporting that a marker has been reached during playout ๐ฃ.
5. ASR Requirements ๐ง
5.1. Requesting Automatic Speech Recognition ๐๏ธ
the SPEECHSC framework MUST allow a Media Processing Entity or Application Server to ask the ASR Server to perform automatic speech recognition on an RTP stream, with the results coming back over SPEECHSC ๐.
5.2. XML ๐
the framework assumes that all ASR servers support the VoiceXML speech recognition grammar specification (SRGS) for speech recognition [2]. no cap, this one is the foundation ๐งฑ.
5.3.1. Grammar Specification ๐
the framework assumes all ASR servers can accept grammar specifications either "by value" (embedded in the protocol) or "by reference" (for example, by de-referencing a URI embedded in the protocol) ๐. the latter MUST allow indicating a grammar that is already known to, or otherwise "built in" to, the server ๐ง . the framework and protocol SHOULD further exploit the ability to store and later retrieve, by reference, large grammars that were originally supplied by the client ๐พ.
5.3.2. Explicit Indication of Grammar Format ๐ท๏ธ
the SPEECHSC framework protocol MUST be able to explicitly convey the grammar format in which the grammar is encoded ๐, and MUST be extensible so it can convey new grammar formats as they get defined ๐.
5.3.3. Grammar Sharing ๐ค
the SPEECHSC framework SHOULD exploit sharing grammars across sessions for servers that are capable of doing so ๐. this supports applications with large grammars that it's unrealistic to load dynamically. an example is a city-country grammar for a weather service ๐ฆ๏ธ.
5.4. Session Parameters โ๏ธ
the SPEECHSC framework MUST accommodate, at a minimum, all of the protocol parameters currently defined in Media Resource Control Protocol (MRCP) [10]. in addition, there SHOULD be a capability to reset parameters within a session ๐.
5.5. Input Capture ๐ผ
the SPEECHSC framework MUST support a method that directs the ASR Server to capture the input media stream for later analysis and tuning of the ASR engine ๐ง.
6. Speaker Identification and Verification Requirements ๐ต๏ธโโ๏ธ
6.1. Requesting SI/SV ๐ชช
the SPEECHSC framework MUST allow a Media Processing Entity to ask the SI/SV Server to perform speaker identification or verification on an RTP stream, with results returned over SPEECHSC ๐ซ.
6.2. Identifiers for SI/SV ๐
the SPEECHSC framework MUST accommodate an identifier for each verification resource and permit control of that resource by ID ๐. the reason is that voiceprint format and contents are vendor specific, so IDs keep things clean ๐ .
6.3. State for Multiple Utterances ๐งฉ
the SPEECHSC framework MUST work with SI/SV servers that maintain state to handle multi-utterance verification ๐ซถ. it's giving continuity.
6.4. Input Capture ๐๏ธ
the SPEECHSC framework MUST support a method for capturing the input media stream for later analysis and tuning of the SI/SV engine. the framework may assume all servers are capable of doing so. in addition, the framework assumes that the captured stream contains enough timestamp context (e.g., the NTP time range from the RTP Control Protocol (RTCP) packets, which corresponds to the RTP timestamps of the captured input) to figure out, after the fact, exactly when the verification was requested โฐ. receipts, bestie ๐งพ.
6.5. SI/SV Functional Extensibility ๐งช
the SPEECHSC framework SHOULD be extensible to additional functions associated with SI/SV, such as prompting, utterance verification, and retraining ๐ฑ.
7. Duplexing and Parallel Operation Requirements ๐
okay so one super important thing for an interactive speech-driven system is that the user's perception of quality depends hard on being able to interrupt a prompt or rendered TTS with their own speech ๐ฏ๏ธ. interrupting, or barging, the speech output takes more than just energy detection from the user's direction. lowkey a lot of advanced systems halt the media toward the user by using the ASR engine to decide whether an utterance is likely real speech, as opposed to, say, a cough ๐คง.
7.1. Full Duplex Operation ๐ง
to get low latency between utterance detection and halting playback, many implementations combine the speaking and ASR functions โก. the SPEECHSC framework MUST support such full-duplex implementations ๐.
7.2. Multiple Services in Parallel ๐ฏ
good spoken user interfaces typically depend on how easily the user can get their task done โจ. when you're using speaker identification or verification tech, the UI improvements often come from combining the different technologies: simultaneous identity claim and verification (on the same utterance), and simultaneous knowledge and voice verification (using ASR and verification at the same time). using ASR and verification on the same utterance is in fact the only way to support rolling or dynamically-generated challenge phrases (e.g., "say 51723") ๐ข. the SPEECHSC framework MUST support such parallel service implementations ๐ซถ.
7.3. Combination of Services ๐งฉ
it is optionally of interest that the SPEECHSC framework support more complex remote combination and control of speech engines ๐:
- Combination in series of engines that may then act on the input or output of ASR, TTS, or Speaker recognition engines. The control MAY then extend beyond such engines to include other audio input and output processing and natural language processing. ๐
- Intermediate exchanges and coordination between engines. ๐ค
- Remote specification of flows between engines. ๐
these capabilities MAY benefit from service discovery mechanisms (e.g., engines, properties, and states discovery) ๐.
8. Additional Considerations (Non-Normative) ๐ญ
the framework assumes that Session Description Protocol (SDP) will be used to describe media sessions and streams. it further assumes RTP carriage of media ๐ถ. however, since SDP can be used to describe other media transport schemes (e.g., ATM), those could be used too, as long as they provide the necessary elements (e.g., explicit timestamps) ๐ง.
the working group will not be defining distributed speech recognition (DSR) methods, as exemplified by the European Telecommunications Standards Institute (ETSI) Aurora project ๐ โโ๏ธ. the working group will also not be recreating functionality that's available in other protocols, such as SIP or SDP ๐ .
TTS looks very much like playing back a file ๐. extending RTSP looks promising when someone needs VCR controls or markers in the text to be spoken โฏ๏ธ. when you don't need VCR controls, SIP in a framework such as Network Announcements [12] works directly, no modifications needed ๐ฆ.
ASR has an entirely different set of characteristics ๐ช๏ธ. for barge-in support, ASR needs real-time return of intermediate results. barring the discovery of a good reuse model for an existing protocol, this will most likely become the focus of SPEECHSC ๐ฏ.
9. Security Considerations ๐
bestie, protocols for speech processing must take security and privacy into account ๐ซฃ. a lot of speech tech deals with sensitive info, like using Text-to-Speech to read out financial information ๐ธ. likewise, popular uses for automatic speech recognition include executing financial transactions and shopping ๐๏ธ. iykyk, this is serious stuff.
there are at least three aspects of speech processing security that intersect with the SPEECHSC requirements: securing the SPEECHSC protocol itself, implementing and deploying the servers that run the protocol, and making sure that using the technology to provide security functions is appropriate ๐ก๏ธ. each of these aspects is discussed in the following subsections. while some of these considerations are, strictly speaking, out of scope of the protocol itself, they will be carefully considered and accommodated during protocol design, and will be called out as part of the applicability statement that comes with the protocol specification(s) ๐. privacy considerations are discussed as well ๐.
9.1. SPEECHSC Protocol Security ๐
the SPEECHSC protocol MUST in all cases support authentication, authorization, and integrity, and SHOULD support confidentiality ๐. for privacy-sensitive applications, the protocol MUST support confidentiality ๐จ. the vision is that, rather than building protocol-specific security mechanisms into SPEECHSC itself, the resulting protocol will use the security machinery of either a containing protocol or the transport it runs on ๐ง. for example, we will consider solutions such as using Transport Layer Security (TLS) for securing the control channel, and Secure Realtime Transport Protocol (SRTP) for securing the media channel ๐. third-party dependencies that would need transitive trust will be minimized, or explicitly dealt with through the authentication and authorization aspects of the protocol design ๐.
9.2. Client and Server Implementation and Deployment โจ
okay so, the stuff SPEECHSC carries can be seriously sensitive ๐ฅบ, so clients and servers have to lock things down so the data stays confidential and intact, both when it's turned into spoken form and when it's turned back again ๐๐. And it gets extra intense for speaker verification and identification, because those functions use voiceprints ๐๏ธ that need their privacy, confidentiality, and integrity protected, no exceptions ๐ . Input capture is also a whole thing. It's useful for analysis and tuning ๐, but recording what users say can be a privacy risk, since those utterances could get revealed or replayed somewhere they shouldn't be ๐ญ. Implementers have to be super careful about guarding any centralized voiceprint database, plus the recordings the voiceprints came from ๐. These are the specific moves recommended to cut down on those threats:
- End-to-end authentication, confidentiality, and integrity protection (like TLS) for access to the database, so there's less exposure to outside attackers ๐ก๏ธ.
- Database protection like read/write access control and local login authentication, so insiders have less exposure too ๐.
- Copies of the database, especially ones kept at off-site locations, need the same protection as the live operational database ๐ฆ.
Right now, leaking this data isn't an exploitable threat, but it might become one later ๐ฎ. We'll look at the specific vulnerabilities that could become possible in the next subsection ๐ต๏ธโโ๏ธ. For now it's smart to do things like encrypting the voiceprint database and only letting people in through programming interfaces that enforce proper authorization machinery ๐โจ.
9.3. Use of SPEECHSC for Security Functions ๐ฆ
Speaker identification or verification can both be used directly as an authentication technology ๐. Authorization decisions can be tied to speaker verification directly, through challenge-response protocols, or indirectly with speaker identification, using access control lists or other identity-based authorization mechanisms ๐๏ธ. Once you do that, there are extra security concerns that need protocol security mechanisms for clients and servers to handle ๐ค. For example, if someone can mess with the media stream of a speaker verification request, they could let the wrong person in or lock the right person out, either through impersonation or by garbling things with noise injection ๐. That's why it's so critical to properly secure both the control and data channels, as recommended above ๐. These issues are specific to using SI/SV for authentication, so they should be carefully considered ๐:
- Stolen voiceprints, or the recorded samples used to build them, are a future threat to speaker identification and verification as a biometric authentication technology ๐ฑ. One plausible attack (not feasible today) is feeding the voiceprint information into a text-to-speech synthesis system as parametric input, so it could mimic the user's voice well enough to match the voiceprint ๐ค. Recording a pretty big pile of voice samples isn't that hard to do sneakily, so being able to build voiceprints for this attack would make voice-based biometric authentication highly vulnerable, even with advanced challenge-response techniques ๐. People using speaker verification for authentication should keep a close eye on tech developments for these future vulnerabilities ๐ (kind of like how users of other authentication technologies should watch advances in factoring, which can be used to break asymmetric keying systems ๐ง ).
- Just like other biometric authentication technologies, speech identification has a downside: revocation isn't possible ๐ญ. Once the biometric information is compromised, it can be used for identification and authentication in other independent systems ๐จ.
- Enrollment procedures can be vulnerable to impersonation if they aren't protected by both protocol security mechanisms and some independent proof of identity ๐ง. (Proof of identity may not be needed in systems that only need to verify continuity of identity since enrollment, as opposed to association with a particular individual. ๐ซถ)
If you want more on using SI/SV as an authentication technology, plus some recommendations on its advantages and vulnerabilities, check out Chapter 5 of [15] ๐โจ.
10. Acknowledgements โจ
Eric Burger wrote the original version of these requirements and has kept contributing actively the whole way through their development ๐. He's basically a co-author in everything but formal authorship ๐. He's acknowledged here instead because it's better for working group co-chairs to have roles that don't conflict with how documents progress ๐ .
11. References ๐
11.1. Normative References ๐ซถ
- [1] Walker, M., Burnett, D., and A. Hunt, "Speech Synthesis Markup Language (SSML) Version 1.0", W3C REC REC-speech-synthesis-20040907, September 2004.
- [2] McGlashan, S. and A. Hunt, "Speech Recognition Grammar Specification Version 1.0", W3C REC REC-speech-grammar-20040316, March 2004.
- [3] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
- [4] Floyd, S. and L. Daigle, "IAB Architectural and Policy Considerations for Open Pluggable Edge Services", RFC 3238, January 2002.
- [5] Charlton, N., Gasson, M., Gybels, G., Spanner, M., and A. van Wijk, "User Requirements for the Session Initiation Protocol (SIP) in Support of Deaf, Hard of Hearing and Speech-impaired Individuals", RFC 3351, August 2002.
11.2. Informative References ๐
- [6] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002.
- [7] Andreasen, F. and B. Foster, "Media Gateway Control Protocol (MGCP) Version 1.0", RFC 3435, January 2003.
- [8] Groves, C., Pantaleo, M., Ericsson, LM., Anderson, T., and T. Taylor, "Gateway Control Protocol Version 1", RFC 3525, June 2003.
- [9] Schulzrinne, H., Rao, A., and R. Lanphier, "Real Time Streaming Protocol (RTSP)", RFC 2326, April 1998.
- [10] Shanmugham, S., Monaco, P., and B. Eberman, "MRCP: Media Resource Control Protocol", Work in Progress.
- [11] World Wide Web Consortium, "Voice Extensible Markup Language (VoiceXML) Version 2.0", W3C Working Draft , April 2002,
<http://www.w3.org/TR/2002/WD-voicexml20-20020424/>. - [12] Burger, E., Ed., Van Dyke, J., and A. Spitzer, "Basic Network Media Services with SIP", RFC 4240, December 2005.
- [13] Guttman, E., Perkins, C., Veizades, J., and M. Day, "Service Location Protocol, Version 2", RFC 2608, June 1999.
- [14] Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for specifying the location of services (DNS SRV)", RFC 2782, February 2000.
- [15] Committee on Authentication Technologies and Their Privacy Implications, National Research Council, "Who Goes There?: Authentication Through the Lens of Privacy", Computer Science and Telecommunications Board (CSTB) , 2003,
<http://www.nap.edu/catalog/10656.html/ >.
Author's Address ๐
David R. Oran
Cisco Systems, Inc.
7 Ladyslipper Lane
Acton, MA
USA
EMail: oran@cisco.com
Full Copyright Statement ยฉ
Copyright (C) The Internet Society (2005).
This document is covered by the rights, licenses and restrictions in BCP 78, and apart from what's set out there, the authors keep all their rights ๐.
This document and the info in it is provided "AS IS" ๐ซ . The contributor, the organization they represent or are sponsored by (if any), the Internet Society, and the Internet Engineering Task Force all disclaim every warranty, express or implied. That includes any warranty that using the information here won't infringe any rights, and any implied warranties of merchantability or fitness for a particular purpose ๐ โโ๏ธ.
Intellectual Property ๐
The IETF doesn't take a position on whether any Intellectual Property Rights or other rights claimed for the technology in this document are valid or in scope, or on whether a license under those rights might be available. It also doesn't claim to have independently tried to find any such rights ๐ต๏ธ. Info about how rights work for RFC documents is in BCP 78 and BCP 79 ๐.
Copies of IPR disclosures sent to the IETF Secretariat, any assurances of licenses that will be available, and the results of any attempt to get a general license or permission for implementers or users to use those proprietary rights can all be found in the IETF's online IPR repository at http://www.ietf.org/ipr ๐ธ.
The IETF also invites anyone to bring to its attention any copyrights, patents, patent applications, or other proprietary rights that might cover technology needed to implement this standard. Send that info to the IETF at ietf-ipr@ietf.org ๐.
Acknowledgement ๐
Funding for the RFC Editor function is currently provided by the Internet Society ๐.
๐ฆ where this page comes from
- ietf: rfc4313 2005-12
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms