The Voice control API provides functions for registering command and getting notification when registered command is recognized.
Required Header
#include <voice_control.h>
Overview
A main function of Voice Control API register command and gets notification for recognition result. Applications can add their own commands and be provided result when their command is recognized by user voice input. To use of Voice Control, use the following steps:
1. Initialize
2. Register callback functions for notifications
3. Connect to voice control service asynchronously. The state should be changed to Ready
4. Make command list as the following step and Step 4 is called repeatedly for each command which an application wants
4-1. Create command list handle
4-2. Create command handle
4-3. Set command and type for command handle
4-4. Add command handle to command list
5. Set command list for recognition
6. Set an invocation name for an application
7. Get recognition results
8. Request the dialogue
9. If an application wants to finish voice control,
9-1. Destroy command and command list handle
9-2. Deinitialize
An application can obtain command handle from command list, and also get information from handle. The Voice Control API also notifies you (by callback mechanism) when the states of client and service are changed, command is recognized, current language is changed or error occurred. An application should register callback functions: vc_state_changed_cb(), vc_service_state_changed_cb(), vc_result_cb(), vc_current_language_changed_cb(), vc_error_cb().
State Diagram
The following diagram shows the life cycle and the states of the Voice Control.
<State diagram>
The following diagram shows the states of Voice Control service.
<Service state diagram>
State Transitions
State Dependent Function Calls
The following table shows state-dependent function calls. It is forbidden to call functions listed below in wrong states. Violation of this rule may result in an unpredictable behavior.
Related Features
This API is related with the following features:
- http://tizen.org/feature/microphone
- http://tizen.org/feature/speech.control
It is recommended to design feature related codes in your application for reliability.
You can check if a device supports the related features for this API by using System Information, thereby controlling the procedure of your application.
To ensure your application is only running on the device with specific features, please define the features in your manifest file using the manifest editor in the SDK.
More details on featuring your application can be found from Feature Element.
Copyright (c) 2011-2016 Samsung Electronics Co., Ltd All Rights Reserved
Licensed under the Apache License, Version 2.0 (the License); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Functions |
int | vc_initialize (void) |
| Initializes voice control.
|
int | vc_deinitialize (void) |
| Deinitializes voice control.
|
int | vc_prepare (void) |
| Connects the voice control service.
|
int | vc_unprepare (void) |
| Disconnects the voice control service.
|
int | vc_foreach_supported_languages (vc_supported_language_cb callback, void *user_data) |
| Retrieves all supported languages using callback function.
|
int | vc_get_current_language (char **language) |
| Gets current language.
|
int | vc_get_state (vc_state_e *state) |
| Gets current state of voice control client.
|
int | vc_get_service_state (vc_service_state_e *state) |
| Gets current state of voice control service.
|
int | vc_get_system_command_list (vc_cmd_list_h *vc_sys_cmd_list) |
| Gets the system command list.
|
int | vc_set_invocation_name (const char *name) |
| Sets the invocation name.
|
int | vc_request_dialog (const char *disp_text, const char *utt_text, bool auto_start) |
| Requests to start the dialogue.
|
int | vc_set_command_list (vc_cmd_list_h vc_cmd_list, int type) |
| Sets command list.
|
int | vc_unset_command_list (int type) |
| Unsets command list.
|
int | vc_get_result (vc_result_cb callback, void *user_data) |
| Gets the recognition result.
|
int | vc_set_result_cb (vc_result_cb callback, void *user_data) |
| Registers a callback function for getting recognition result.
|
int | vc_unset_result_cb (void) |
| Unregisters the callback function.
|
int | vc_set_service_state_changed_cb (vc_service_state_changed_cb callback, void *user_data) |
| Registers a callback function to be called when state is changed.
|
int | vc_unset_service_state_changed_cb (void) |
| Unregisters the callback function.
|
int | vc_set_state_changed_cb (vc_state_changed_cb callback, void *user_data) |
| Registers a callback function to be called when state is changed.
|
int | vc_unset_state_changed_cb (void) |
| Unregisters the callback function.
|
int | vc_set_current_language_changed_cb (vc_current_language_changed_cb callback, void *user_data) |
| Registers a callback function to be called when current language is changed.
|
int | vc_unset_current_language_changed_cb (void) |
| Unregisters the callback function.
|
int | vc_set_error_cb (vc_error_cb callback, void *user_data) |
| Registers a callback function to be called when an error occurred.
|
int | vc_unset_error_cb (void) |
| Unregisters the callback function.
|
Typedefs |
typedef void(* | vc_result_cb )(vc_result_event_e event, vc_cmd_list_h vc_cmd_list, const char *result, void *user_data) |
| Called when client gets the recognition result.
|
typedef void(* | vc_current_language_changed_cb )(const char *previous, const char *current, void *user_data) |
| Called when default language is changed.
|
typedef bool(* | vc_supported_language_cb )(const char *language, void *user_data) |
| Called to retrieve supported language.
|
typedef void(* | vc_state_changed_cb )(vc_state_e previous, vc_state_e current, void *user_data) |
| Called when the state of voice control client is changed.
|
typedef void(* | vc_service_state_changed_cb )(vc_service_state_e previous, vc_service_state_e current, void *user_data) |
| Called when the state of voice control service is changed.
|
typedef void(* | vc_error_cb )(vc_error_e reason, void *user_data) |
| Called when error occurred.
|
Defines |
#define | VC_COMMAND_TYPE_FOREGROUND 1 |
| Definition for foreground command type.
|
#define | VC_COMMAND_TYPE_BACKGROUND 2 |
| Definition for background command type.
|
#define | VC_DIALOG_END 0 |
| Definition for ended dialog.
|
#define | VC_DIALOG_CONTINUE 1 |
| Definition for continued dialog.
|
Define Documentation
Definition for background command type.
- Since :
- 2.4
Definition for foreground command type.
- Since :
- 2.4
Definition for continued dialog.
- Since :
- 3.0
Definition for ended dialog.
- Since :
- 3.0
Typedef Documentation
Called when default language is changed.
- Since :
- 2.4
- Parameters:
-
[in] | previous | Previous language |
[in] | current | Current language |
[in] | user_data | The user data passed from the callback registration function |
- Precondition:
- An application registers this callback to detect changing mode.
- See also:
- vc_set_current_language_changed_cb()
Called when error occurred.
- Since :
- 2.4
- Parameters:
-
- Precondition:
- An application registers this callback to detect error.
- See also:
- vc_set_error_cb()
Called when client gets the recognition result.
- Since :
- 2.4
- Parameters:
-
- Precondition:
- An application registers callback function.
- See also:
- vc_set_result_cb()
Called when the state of voice control service is changed.
- Since :
- 2.4
- Parameters:
-
[in] | previous | A previous state |
[in] | current | A current state |
[in] | user_data | The user data passed from the callback registration function |
- Precondition:
- An application registers this callback to detect changing service state.
- See also:
- vc_set_service_state_changed_cb()
Called when the state of voice control client is changed.
- Since :
- 2.4
- Parameters:
-
[in] | previous | A previous state |
[in] | current | A current state |
[in] | user_data | The user data passed from the callback registration function |
- Precondition:
- An application registers this callback to detect changing state.
- See also:
- vc_set_state_changed_cb()
Called to retrieve supported language.
- Since :
- 2.4
- Parameters:
-
[in] | language | A language is specified as an ISO 3166 alpha-2 two letter country-code followed by ISO 639-1 for the two-letter language code. For example, "ko_KR" for Korean, "en_US" for American English |
[in] | user_data | The user data passed from the foreach function |
- Returns:
true
to continue with the next iteration of the loop, false
to break out of the loop
- Precondition:
- The function will invoke this callback.
Enumeration Type Documentation
Enumeration for error codes.
- Since :
- 2.4
- Enumerator:
VC_ERROR_NONE |
Successful
|
VC_ERROR_OUT_OF_MEMORY |
Out of Memory
|
VC_ERROR_IO_ERROR |
I/O error
|
VC_ERROR_INVALID_PARAMETER |
Invalid parameter
|
VC_ERROR_TIMED_OUT |
No answer from service
|
VC_ERROR_RECORDER_BUSY |
Busy recorder
|
VC_ERROR_PERMISSION_DENIED |
Permission denied
|
VC_ERROR_NOT_SUPPORTED |
VC NOT supported
|
VC_ERROR_INVALID_STATE |
Invalid state
|
VC_ERROR_INVALID_LANGUAGE |
Invalid language
|
VC_ERROR_ENGINE_NOT_FOUND |
No available engine
|
VC_ERROR_OPERATION_FAILED |
Operation failed
|
VC_ERROR_OPERATION_REJECTED |
Operation rejected
|
VC_ERROR_ITERATION_END |
List reached end
|
VC_ERROR_EMPTY |
List empty
|
VC_ERROR_SERVICE_RESET |
Service daemon reset (Since 3.0)
|
VC_ERROR_IN_PROGRESS_TO_READY |
In progress to ready (Since 3.0)
|
VC_ERROR_IN_PROGRESS_TO_RECORDING |
In progress to recording (Since 3.0)
|
VC_ERROR_IN_PROGRESS_TO_PROCESSING |
In progress to processing (Since 3.0)
|
Enumeration for result event.
- Since :
- 2.4
- Enumerator:
VC_RESULT_EVENT_RESULT_SUCCESS |
Normal result
|
VC_RESULT_EVENT_REJECTED |
Rejected result
|
Enumeration for service state.
- Since :
- 2.4
- Enumerator:
VC_SERVICE_STATE_NONE |
'None' state
|
VC_SERVICE_STATE_READY |
'Ready' state
|
VC_SERVICE_STATE_RECORDING |
'Recording' state
|
VC_SERVICE_STATE_PROCESSING |
'Processing' state
|
Enumeration for client state.
- Since :
- 2.4
- Enumerator:
VC_STATE_NONE |
'None' state
|
VC_STATE_INITIALIZED |
'Initialized' state
|
VC_STATE_READY |
'Ready' state
|
Function Documentation
Deinitializes voice control.
- Since :
- 2.4
- Privilege Level:
- public
- Privilege:
- http://tizen.org/privilege/recorder
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
- See also:
- vc_deinitialize()
Retrieves all supported languages using callback function.
- Since :
- 2.4
- Privilege Level:
- public
- Privilege:
- http://tizen.org/privilege/recorder
- Parameters:
-
[in] | callback | Callback function to invoke |
[in] | user_data | The user data to be passed to the callback function |
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
- Precondition:
- The state should be VC_STATE_INITIALIZED or VC_STATE_READY.
- Postcondition:
- This function invokes vc_supported_language_cb() repeatedly for getting languages.
- See also:
- vc_supported_language_cb()
-
vc_get_current_language()
Gets current language.
- Since :
- 2.4
- Privilege Level:
- public
- Privilege:
- http://tizen.org/privilege/recorder
- Parameters:
-
[out] | language | A language is specified as an ISO 3166 alpha-2 two letter country-code followed by ISO 639-1 for the two-letter language code. For example, "ko_KR" for Korean, "en_US" for American English |
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
- Precondition:
- The state should be VC_STATE_INITIALIZED or VC_STATE_READY.
- See also:
- vc_foreach_supported_languages()
Gets the recognition result.
- Since :
- 3.0
- Privilege Level:
- public
- Privilege:
- http://tizen.org/privilege/recorder
- Parameters:
-
[in] | callback | Callback function to get recognition result |
[in] | user_data | The user data to be passed to the callback function |
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
- Precondition:
- The state should be VC_STATE_READY.
- See also:
- vc_result_cb()
Gets current state of voice control service.
- Since :
- 2.4
- Privilege Level:
- public
- Privilege:
- http://tizen.org/privilege/recorder
- Parameters:
-
[out] | state | The current state |
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
- Precondition:
- The state should be VC_STATE_READY.
- See also:
- vc_request_start()
-
vc_request_stop()
-
vc_request_cancel()
-
vc_set_service_state_changed_cb()
-
vc_unset_service_state_changed_cb()
Gets current state of voice control client.
- Since :
- 2.4
- Privilege Level:
- public
- Privilege:
- http://tizen.org/privilege/recorder
- Parameters:
-
[out] | state | The current state |
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
- See also:
- vc_state_changed_cb()
-
vc_set_state_changed_cb()
Gets the system command list.
- Since :
- 3.0
- Privilege Level:
- public
- Privilege:
- http://tizen.org/privilege/recorder
- Parameters:
-
[out] | vc_sys_cmd_list | System command list handle |
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
- Precondition:
- The service state should be VC_SERVICE_STATE_READY.
- See also:
- vc_unset_command_list()
Initializes voice control.
- Since :
- 2.4
- Privilege Level:
- public
- Privilege:
- http://tizen.org/privilege/recorder
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
- Postcondition:
- If this function is called, the state will be VC_STATE_INITIALIZED.
- See also:
- vc_deinitialize()
Connects the voice control service.
- Since :
- 2.4
- Privilege Level:
- public
- Privilege:
- http://tizen.org/privilege/recorder
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
- Precondition:
- The state should be VC_STATE_INITIALIZED.
- Postcondition:
- If this function is called, the state will be VC_STATE_READY.
- See also:
- vc_unprepare()
int vc_request_dialog |
( |
const char * |
disp_text, |
|
|
const char * |
utt_text, |
|
|
bool |
auto_start |
|
) |
| |
Requests to start the dialogue.
Using this function, the developer can request starting the dialogue to the framework. When the developer requests the dialogue, two types of texts, disp_text and utt_text, can be sent by this function. disp_text is a text for displaying, and utt_text is that for uttering. For example, if disp_text is "October 10th" and utt_text is "Today is October 10th.", "October 10th" will be displayed on the screen and "Today is October 10th." will be spoken. Also, the developer can set whether the dialogue starts automatically or not, using auto_start. If the developer sets auto_start as true
, the framework will start to record next speech and continue the dialogue.
- Since :
- 3.0
- Privilege Level:
- public
- Privilege:
- http://tizen.org/privilege/recorder
- Parameters:
-
[in] | disp_text | Text to be displayed on the screen |
[in] | utt_text | Text to be spoken |
[in] | auto_start | A variable for setting whether the dialog session will be restarted automatically or not |
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
- Precondition:
- The service state should be VC_SERVICE_STATE_READY.
Sets command list.
- Since :
- 2.4
- Privilege Level:
- public
- Privilege:
- http://tizen.org/privilege/recorder
- Parameters:
-
[in] | vc_cmd_list | Command list handle |
[in] | type | Command type |
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
- Precondition:
- The state should be VC_STATE_READY.
- See also:
- vc_unset_command_list()
Registers a callback function to be called when current language is changed.
- Since :
- 2.4
- Privilege Level:
- public
- Privilege:
- http://tizen.org/privilege/recorder
- Parameters:
-
[in] | callback | Callback function to register |
[in] | user_data | The user data to be passed to the callback function |
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
- Precondition:
- The state should be VC_STATE_INITIALIZED.
- See also:
- vc_current_language_changed_cb()
-
vc_unset_current_language_changed_cb()
Registers a callback function to be called when an error occurred.
- Since :
- 2.4
- Privilege Level:
- public
- Privilege:
- http://tizen.org/privilege/recorder
- Parameters:
-
[in] | callback | Callback function to register |
[in] | user_data | The user data to be passed to the callback function |
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
- Precondition:
- The state should be VC_STATE_INITIALIZED.
- See also:
- vc_error_cb()
-
vc_unset_error_cb()
Sets the invocation name.
- Since :
- 3.0
- Privilege Level:
- public
- Privilege:
- http://tizen.org/privilege/recorder
- Parameters:
-
[in] | name | Invocation name that an application wants to be invoked by |
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
- Precondition:
- The state should be VC_STATE_READY.
- See also:
- vc_set_command_list()
Registers a callback function for getting recognition result.
- Since :
- 2.4
- Privilege Level:
- public
- Privilege:
- http://tizen.org/privilege/recorder
- Parameters:
-
[in] | callback | Callback function to register |
[in] | user_data | The user data to be passed to the callback function |
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
- Precondition:
- The state should be VC_STATE_INITIALIZED.
- See also:
- vc_result_cb()
-
vc_unset_result_cb()
Registers a callback function to be called when state is changed.
- Since :
- 2.4
- Privilege Level:
- public
- Privilege:
- http://tizen.org/privilege/recorder
- Parameters:
-
[in] | callback | Callback function to register |
[in] | user_data | The user data to be passed to the callback function |
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
- Precondition:
- The state should be VC_STATE_INITIALIZED.
- See also:
- vc_service_state_changed_cb()
-
vc_unset_service_state_changed_cb()
Registers a callback function to be called when state is changed.
- Since :
- 2.4
- Privilege Level:
- public
- Privilege:
- http://tizen.org/privilege/recorder
- Parameters:
-
[in] | callback | Callback function to register |
[in] | user_data | The user data to be passed to the callback function |
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
- Precondition:
- The state should be VC_STATE_INITIALIZED.
- See also:
- vc_state_changed_cb()
-
vc_unset_state_changed_cb()
Disconnects the voice control service.
- Since :
- 2.4
- Privilege Level:
- public
- Privilege:
- http://tizen.org/privilege/recorder
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
- Precondition:
- The state should be VC_STATE_READY.
- Postcondition:
- If this function is called, the state will be VC_STATE_INITIALIZED.
- See also:
- vc_prepare()
Unsets command list.
- Since :
- 2.4
- Privilege Level:
- public
- Privilege:
- http://tizen.org/privilege/recorder
- Parameters:
-
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
- Precondition:
- The state should be VC_STATE_READY.
- See also:
- vc_set_command_list()
Unregisters the callback function.
- Since :
- 2.4
- Privilege Level:
- public
- Privilege:
- http://tizen.org/privilege/recorder
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
- Precondition:
- The state should be VC_STATE_INITIALIZED.
- See also:
- vc_set_current_language_changed_cb()
Unregisters the callback function.
- Since :
- 2.4
- Privilege Level:
- public
- Privilege:
- http://tizen.org/privilege/recorder
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
- Precondition:
- The state should be VC_STATE_INITIALIZED.
- See also:
- vc_set_error_cb()
Unregisters the callback function.
- Since :
- 2.4
- Privilege Level:
- public
- Privilege:
- http://tizen.org/privilege/recorder
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
- Precondition:
- The state should be VC_STATE_INITIALIZED.
- See also:
- vc_set_result_cb()
Unregisters the callback function.
- Since :
- 2.4
- Privilege Level:
- public
- Privilege:
- http://tizen.org/privilege/recorder
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
- Precondition:
- The state should be VC_STATE_INITIALIZED.
- See also:
- vc_set_service_state_changed_cb()
Unregisters the callback function.
- Since :
- 2.4
- Privilege Level:
- public
- Privilege:
- http://tizen.org/privilege/recorder
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
- Precondition:
- The state should be VC_STATE_INITIALIZED.
- See also:
- vc_set_state_changed_cb()