
{"id":10233,"date":"2022-06-21T09:11:39","date_gmt":"2022-06-21T09:11:39","guid":{"rendered":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/voice\/"},"modified":"2024-12-04T14:10:50","modified_gmt":"2024-12-04T14:10:50","slug":"voice","status":"publish","type":"page","link":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/voice\/","title":{"rendered":"Voice"},"content":{"rendered":"<p><!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/REC-html40\/loose.dtd\"><br \/>\n <html><body><\/p>\n<p><span>The RDK Voice Service is a service for transmitting voice data over BLE in the RDK ecosystem. The RDK Voice Service is specifically designed to enable voice control of a BLE voice client.&nbsp;<\/span><span>This document defines detailed requirements for the RDK Voice Service. It is intended to specify transmission of voice data from an RVS server to an RVS client.<\/span><\/p>\n<h3 id=\"Voice-References\"><strong>References<\/strong><\/h3>\n<p><span>Reasonable effort is made to keep references up to date with respect to versions and release dates, however manufacturers are responsible for ensuring they have the most recent version of a reference specification (unless otherwise noted).&nbsp;<\/span><span>Where conflicts exist between requirements contained in this specification and normative references, the specification requirements govern.<\/span><\/p>\n<h3 id=\"Voice-NormativeReferences\"><span>Normative References<\/span><\/h3>\n<p>[ADPCM]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Recommended Practices for Enhancing Digital Audio Compatibility in Multimedia Systems, IMA Digital Audio Focus and Technical Working Groups; DATWG Recommendation, October 21, 1992.<\/p>\n<p><span><span>[BLUETOOTH]<\/span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span>Bluetooth Core Specification version 4.0 or later <\/span><\/span><\/p>\n<h3 class=\"with-breadcrumbs\" id=\"Voice-TermsandDefinitions\"><span>Terms and Definitions<\/span><\/h3>\n<div class=\"table-wrap\">\n\n\n<table class=\"wrapped confluenceTable\" style=\"width: 100%;\"><colgroup><col \/><col \/><\/colgroup>\n<thead>\n<tr>\n<th class=\"confluenceTh\" style=\"width: 26.3095%;\">\n<p><strong>Term<\/strong><\/p>\n<\/th>\n<th class=\"confluenceTh\" style=\"width: 72.9762%;\">\n<p><strong>Definition<\/strong><\/p>\n<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"confluenceTd\" style=\"width: 26.3095%;\">\n<p><strong>Adaptive Differential Pulse-Code Modulation<\/strong><\/p>\n<\/td>\n<td class=\"confluenceTd\" style=\"width: 72.9762%;\">\n<p>A compression algorithm that varies the size of the quantization step, allowing further reduction of the required bandwidth for a given signal-to-noise ratio.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\" style=\"width: 26.3095%;\">\n<p><strong>Opus<\/strong><\/p>\n<\/td>\n<td class=\"confluenceTd\" style=\"width: 72.9762%;\">\n<p>\u00a0<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\n\n<\/div>\n<h3 class=\"with-breadcrumbs\" id=\"Voice-AbbreviationsandAcronyms\"><strong>Abbreviations and Acronyms<\/strong><\/h3>\n<div class=\"table-wrap\">\n\n\n<table class=\"wrapped confluenceTable\" style=\"width: 100%; height: 204px;\"><colgroup><col \/><col \/><\/colgroup>\n<thead>\n<tr style=\"height: 68px;\">\n<th class=\"confluenceTh\" style=\"height: 68px;\">\n<p><strong>Abbrv<\/strong><\/p>\n<\/th>\n<th class=\"confluenceTh\" style=\"height: 68px;\">\n<p><strong>Acronym<\/strong><\/p>\n<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"height: 68px;\">\n<td class=\"confluenceTd\" style=\"height: 68px;\">\n<p><strong>ADPCM<\/strong><\/p>\n<\/td>\n<td class=\"confluenceTd\" style=\"height: 68px;\">\n<p>Adaptive Differential Pulse-Code Modulation<\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 68px;\">\n<td class=\"confluenceTd\" style=\"height: 68px;\">\n<p><strong>RVS<\/strong><\/p>\n<\/td>\n<td class=\"confluenceTd\" style=\"height: 68px;\">\n<p>RDK Voice Service<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\n\n<\/div>\n<h3 class=\"wp-sub-header\"><strong>BLE Voice Overview<\/strong><\/h3>\n<p>The RDK Voice Service exposes data and associated formatting for streaming voice audio from an RDK Remote Control Device to an RDK based STB.<\/p>\n<h3 id=\"Voice-Conformance\"><strong>Conformance<\/strong><\/h3>\n<p><span>All capabilities indicated as mandatory for this Service shall be supported in the specified manner (process-mandatory). This also applies for all optional and conditional capabilities for which support is indicated.<\/span><\/p>\n<h3 id=\"Voice-ServiceDependency\"><strong>Service Dependency<\/strong><\/h3>\n<p><span>This service is not dependent upon any other services.<\/span><\/p>\n<h3 id=\"Voice-BluetoothSpecificationReleaseCompatibility\"><strong>Bluetooth Specification Release Compatibility<\/strong><\/h3>\n<p><span>This specification is compatible with any Bluetooth core specification as defined in [BLUETOOTH] that includes the Generic Attribute Profile (GATT) specification and the Bluetooth Low Energy Controller specification.<\/span><\/p>\n<h3 id=\"Voice-GATTSub-ProcedureRequirements\"><strong>GATT Sub-Procedure Requirements<\/strong><\/h3>\n<p><span>Requirements in this section represent a minimum set of requirements for an RDK Remote Control Device (GATT Server). Other GATT sub-procedures may be used if supported by both Client and Server.<\/span><\/p>\n<p><span>Table<\/span><span>&nbsp;below summarises additional GATT sub-procedure requirements beyond those required by all GATT Servers.<\/span><\/p>\n<div class=\"table-wrap\">\n\n\n<table class=\"wrapped confluenceTable\" style=\"width: 100%; height: 476px;\"><colgroup><col \/><col \/><\/colgroup>\n<thead>\n<tr style=\"height: 68px;\">\n<th class=\"confluenceTh\" style=\"width: 68.6905%; height: 68px;\">\n<p>GATT Sub-Procedure<\/p>\n<\/th>\n<th class=\"confluenceTh\" style=\"width: 30.7143%; height: 68px;\">\n<p>Requirement<\/p>\n<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"height: 68px;\">\n<td class=\"confluenceTd\" style=\"width: 68.6905%; height: 68px;\">\n<p>Read Characteristic Value<\/p>\n<\/td>\n<td class=\"confluenceTd\" style=\"width: 30.7143%; height: 68px;\">\n<p>M<\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 68px;\">\n<td class=\"confluenceTd\" style=\"width: 68.6905%; height: 68px;\">\n<p>Write Characteristic Value<\/p>\n<\/td>\n<td class=\"confluenceTd\" style=\"width: 30.7143%; height: 68px;\">\n<p>M<\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 68px;\">\n<td class=\"confluenceTd\" style=\"width: 68.6905%; height: 68px;\">\n<p>Write Without Response<\/p>\n<\/td>\n<td class=\"confluenceTd\" style=\"width: 30.7143%; height: 68px;\">\n<p>O<\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 68px;\">\n<td class=\"confluenceTd\" style=\"width: 68.6905%; height: 68px;\">\n<p>Notification<\/p>\n<\/td>\n<td class=\"confluenceTd\" style=\"width: 30.7143%; height: 68px;\">\n<p>M<\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 68px;\">\n<td class=\"confluenceTd\" style=\"width: 68.6905%; height: 68px;\">\n<p>Read Characteristic Descriptors<\/p>\n<\/td>\n<td class=\"confluenceTd\" style=\"width: 30.7143%; height: 68px;\">\n<p>M<\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 68px;\">\n<td class=\"confluenceTd\" style=\"width: 68.6905%; height: 68px;\">\n<p>Write Characteristic Descriptors<\/p>\n<\/td>\n<td class=\"confluenceTd\" style=\"width: 30.7143%; height: 68px;\">\n<p>M<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\n\n<h3 id=\"Voice-TransportDependencies\"><strong>Transport Dependencies<\/strong><\/h3>\n<p>The service shall only operate over an LE transport.<\/p>\n<h3 id=\"Voice-ErrorCodes\"><strong>Error Codes<\/strong><\/h3>\n<p>This service does not define any application error codes that are used in Attribute Protocol.<\/p>\n<h3 id=\"Voice-ByteTransmissionOrder\"><strong>Byte Transmission Order<\/strong><\/h3>\n<p>All characteristics used with this service shall be transmitted with the least significant octet first (i.e., little endian).<\/p>\n<h3 class=\"wp-sub-header\"><strong>Service Requirements<\/strong><\/h3>\n<h3 id=\"Voice-ServiceDeclaration\"><strong>Service Declaration<\/strong><\/h3>\n<p>The service UUID shall be set to:\u00a0TBD<\/p>\n<h3 id=\"Voice-ServiceRoles\"><strong>Service Roles<\/strong><\/h3>\n<p>A remote control or similar low power device enabled with one or multiple microphones should function as an RVS Server.\u00a0<\/p>\n<p>A settop box or other host capable of processing transmitted voice data should function as an RVS Client<\/p>\n<h3 id=\"Voice-ServiceSequenceExamples\"><strong>Service Sequence Examples<\/strong><\/h3>\n<p><strong><a href=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/voice\/service_sequence_examples\/push-to-talk_voice_session_sequence\/\" rel=\"nofollow\">Push-to-talk Voice Session Sequence<\/a><\/strong><\/p>\n<p><strong><a href=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/voice\/service_sequence_examples\/explicitly_rejected_push-to-talk_voice_session_sequence\/\" rel=\"nofollow\">Explicitly Rejected Push-to-talk Voice Session Sequence<\/a><\/strong><\/p>\n<p><strong><a href=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/voice\/service_sequence_examples\/far-field_voice_session_sequence\/\" rel=\"nofollow\">Far-Field Voice Session Sequence<\/a><\/strong><\/p>\n<h3 id=\"Voice-CharacteristicOverview\" class=\"with-breadcrumbs\"><strong><a href=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/voice\/characteristic_overview\/\" rel=\"nofollow\">Characteristic Overview<\/a><\/strong><\/h3>\n<p>\u00a0<\/p>\n<p>\u00a0<\/p>\n<p>\u00a0<\/p>","protected":false},"excerpt":{"rendered":"<p>The RDK Voice Service is a service for transmitting voice data over BLE in the [&hellip;]<\/p>\n","protected":false},"author":28,"featured_media":0,"parent":10158,"menu_order":9,"comment_status":"open","ping_status":"closed","template":"","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"class_list":["post-10233","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Voice - RDK Documentation Portal | Documentation<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/voice\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Voice - RDK Documentation Portal | Documentation\" \/>\n<meta property=\"og:description\" content=\"The RDK Voice Service is a service for transmitting voice data over BLE in the [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/voice\/\" \/>\n<meta property=\"og:site_name\" content=\"RDK Documentation Portal | Documentation\" \/>\n<meta property=\"article:modified_time\" content=\"2024-12-04T14:10:50+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/voice\/\",\"url\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/voice\/\",\"name\":\"Voice - RDK Documentation Portal | Documentation\",\"isPartOf\":{\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/#website\"},\"datePublished\":\"2022-06-21T09:11:39+00:00\",\"dateModified\":\"2024-12-04T14:10:50+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/voice\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/voice\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/voice\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Documentation\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"RDK Video\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Sub-Systems\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/?page_id=10158\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Voice\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/#website\",\"url\":\"https:\/\/developer.rdkcentral.com\/documentation\/\",\"name\":\"RDK Documentation Portal | Documentation\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/developer.rdkcentral.com\/documentation\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Voice - RDK Documentation Portal | Documentation","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/voice\/","og_locale":"en_US","og_type":"article","og_title":"Voice - RDK Documentation Portal | Documentation","og_description":"The RDK Voice Service is a service for transmitting voice data over BLE in the [&hellip;]","og_url":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/voice\/","og_site_name":"RDK Documentation Portal | Documentation","article_modified_time":"2024-12-04T14:10:50+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/voice\/","url":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/voice\/","name":"Voice - RDK Documentation Portal | Documentation","isPartOf":{"@id":"https:\/\/developer.rdkcentral.com\/documentation\/#website"},"datePublished":"2022-06-21T09:11:39+00:00","dateModified":"2024-12-04T14:10:50+00:00","breadcrumb":{"@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/voice\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/voice\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/sub-systems\/voice\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/developer.rdkcentral.com\/documentation\/"},{"@type":"ListItem","position":2,"name":"Documentation","item":"https:\/\/developer.rdkcentral.com\/documentation\/"},{"@type":"ListItem","position":3,"name":"RDK Video","item":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/"},{"@type":"ListItem","position":4,"name":"Sub-Systems","item":"https:\/\/developer.rdkcentral.com\/documentation\/?page_id=10158"},{"@type":"ListItem","position":5,"name":"Voice"}]},{"@type":"WebSite","@id":"https:\/\/developer.rdkcentral.com\/documentation\/#website","url":"https:\/\/developer.rdkcentral.com\/documentation\/","name":"RDK Documentation Portal | Documentation","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/developer.rdkcentral.com\/documentation\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/10233","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/comments?post=10233"}],"version-history":[{"count":4,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/10233\/revisions"}],"predecessor-version":[{"id":11896,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/10233\/revisions\/11896"}],"up":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/10158"}],"wp:attachment":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/media?parent=10233"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}