{"id":19283122,"url":"https://github.com/voiceittech/voiceit2-androidsdk","last_synced_at":"2025-04-22T01:32:34.028Z","repository":{"id":123977836,"uuid":"120362672","full_name":"voiceittech/VoiceIt2-AndroidSDK","owner":"voiceittech","description":"VoiceIt API 2.0 Android SDK","archived":false,"fork":false,"pushed_at":"2024-02-20T03:16:11.000Z","size":37188,"stargazers_count":3,"open_issues_count":1,"forks_count":5,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-02-20T04:26:11.554Z","etag":null,"topics":["android","api-wrapper","biometrics","face-recognition","java","sdk","sdk-android","voice","voice-recognition"],"latest_commit_sha":null,"homepage":"https://api.voiceit.io","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/voiceittech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2018-02-05T21:13:42.000Z","updated_at":"2022-12-13T06:41:38.000Z","dependencies_parsed_at":"2024-02-20T04:36:34.427Z","dependency_job_id":null,"html_url":"https://github.com/voiceittech/VoiceIt2-AndroidSDK","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voiceittech%2FVoiceIt2-AndroidSDK","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voiceittech%2FVoiceIt2-AndroidSDK/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voiceittech%2FVoiceIt2-AndroidSDK/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voiceittech%2FVoiceIt2-AndroidSDK/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/voiceittech","download_url":"https://codeload.github.com/voiceittech/VoiceIt2-AndroidSDK/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223887222,"owners_count":17219888,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","api-wrapper","biometrics","face-recognition","java","sdk","sdk-android","voice","voice-recognition"],"created_at":"2024-11-09T21:29:47.961Z","updated_at":"2024-11-09T21:29:48.736Z","avatar_url":"https://github.com/voiceittech.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"Graphics/android.png\" width=\"100%\" style=\"width:100%\"\u003e\n\n# VoiceIt 2 Android SDK [![travisstatus](https://travis-ci.com/voiceittech/VoiceIt2-AndroidSDK.svg?branch=master)](https://travis-ci.com/github/voiceittech/VoiceIt2-AndroidSDK) ![jitpack](https://jitpack.io/v/voiceittech/VoiceIt2-AndroidSDK.svg) ![MIT](https://img.shields.io/github/license/mashape/apistatus.svg)\n\nA fully comprehensive SDK that gives you access to VoiceIt's API 2.0 featuring Voice + Face Verification and Identification right in your Android app.\n\n* [Getting Started](#getting-started)\n* [Requirements](#requirements)\n* [Installation](#installation)\n* [Local Installation](#local-installation)\n* [API Calls](#api-calls)\n  * [Initialization](#initialization)\n  * [Liveness Detection](#liveness-detection)\n  * [Encapsulated Methods](#encapsulated-methods)\n      * [Encapsulated Voice Enrollment](#encapsulated-voice-enrollment)\n      * [Encapsulated Voice Verification](#encapsulated-voice-verification)\n      * [Encapsulated Voice Identification](#encapsulated-voice-identification)\n      * [Encapsulated Face Enrollment](#encapsulated-face-enrollment)\n      * [Encapsulated Face Verification](#encapsulated-face-verification)\n      * [Encapsulated Face Identification](#encapsulated-face-identification)\n      * [Encapsulated Video Enrollment](#encapsulated-video-enrollment)\n      * [Encapsulated Video Verification](#encapsulated-video-verification)\n      * [Encapsulated Video Identification](#encapsulated-video-identification)\n  * [Other API Calls](#other-api-calls)\n* [Theme](#setting-the-theme)\n\n\n## UI Screenshots\nThe following show Voice Verification, Face Verification (With liveness detection on) and Video Verification (with Liveness turned off), respectively.\n\n\u003cdiv style=\"background: #000 !important;\"\u003e\n  \u003cimg width=\"290px\" src=\"./Graphics/voiceVerification.gif\" style=\"display: inline-block !important\"/\u003e\u003cimg width=\"290px\" src=\"./Graphics/faceVerification.gif\" style=\"display: inline-block !important;\"/\u003e\u003cimg width=\"290px\" src=\"./Graphics/videoVerification.gif\" style=\"display: inline-block !important;\"/\u003e\n\u003c/div\u003e\n\n## Getting Started\n\nContact us at \u003ca href=\"mailto:support@voiceit.io\" target=\"_blank\"\u003esupport@voiceit.io\u003c/a\u003e to get started with an account to use API 2.0.\n\n\u003cimg src=\"./Graphics/getcredentials.png\" alt=\"API Key and Token\" width=\"400px\" /\u003e\n\n## Requirements\n#### SDK Version\nThe minumum Android SDK version (API level) should be set to 17 in your build.gradle file: \n```\nminSdkVersion: 17\n```\n\n#### API Key and Token \n\nContact us at \u003ca href=\"mailto:support@voiceit.io\" target=\"_blank\"\u003esupport@voiceit.io\u003c/a\u003e to get started with an account to use API 2.0.\n\n#### Voiceprint Phrases \n\nMake sure you review your Voiceprint Phrases by navigating to \u003ca href=\"https://dashboard.voiceit.io/phrase_manager/phrase_list\" target=\"_blank\"\u003eDashboard\u003c/a\u003e in order to know what to pass for voicePrintPhrase parameter.\n\n#### AndroidX\nMake sure your project has the useAndroidX and enableJetifier flags as true: Navigate to the gradle.properties of your project and add the following: \n```\nandroid.useAndroidX=true\nandroid.enableJetifier=true\n```\n\n## Installation\n\nVoiceItApi2AndroidSDK is available through [JitPack](https://jitpack.io/#voiceittech/VoiceItApi2AndroidSDK/).\n\n## Local Installation\n\u003cul\u003e\n \u003cli\u003e Clone the repo\n \u003cli\u003e Open your android project in android studio, and navigate to File -\u003e New -\u003e Import Module\n \u003cli\u003e Select the Android SDK repo that you just cloned. Check off the app module, only include the voiceit2 module\n\u003c/ul\u003e\n\n## API Calls\n\n### Initialization\n\nFirst import *VoiceItAPI2* and then initialize a reference to the SDK inside an Activity, passing in your API Credentials or user token.\n\n```java\nimport com.loopj.android.http.JsonHttpResponseHandler;\nimport cz.msebera.android.httpclient.Header;\nimport org.json.JSONObject;\n\nimport com.voiceit.voiceit2.VoiceItAPI2;\n\npublic class MainActivity extends AppCompatActivity {\n\n    private VoiceItAPI2 myVoiceIt;\n\n    @Override\n    protected void onCreate(Bundle savedInstanceState) {\n        super.onCreate(savedInstanceState);\n        setContentView(R.layout.activity_main);\n\n        // If using user tokens, replace API_KEY below with the user token,\n        // and leave the second argument as an empty string\n        myVoiceIt = new VoiceItAPI2(\"API_KEY\",\"API_TOK\");\n    }\n}\n```\n\n### API calls\n\nFor each API call, a JsonHttpResponseHandler is needed to receive the result of the call. You can override the response handlers like so, and abbreviated with ellipses below:\n```java\nnew JsonHttpResponseHandler() {\n    @Override\n    public void onSuccess(int statusCode, Header[] headers, JSONObject response) {\n        System.out.println(\"JSONResult : \" + response.toString());\n    }\n\n    @Override\n    public void onFailure(int statusCode, Header[] headers, Throwable throwable, JSONObject errorResponse) {\n        if (errorResponse != null) {\n            System.out.println(\"JSONResult : \" + errorResponse.toString());\n        }\n    }\n});\n```\n\n### Liveness Detection\n\nFor our Encapsulated Face and Video Verification methods, liveness detection can be enabled by parameter. \nThis enables a pre-check(prompting to the user to turn their head or smile) before the verification API call to decrease the chance a user is able to spoof with a photo of someone else. This helps to mitigate replay attacks.\n\n### Encapsulated Methods\n\nEncapsulated Methods take care of all the logic of enrollment/verification and the UI in new Android Activities.\nImmediately upon calling a method it displays a enrollment/verification view controller that enrolls/verifies the user and \nprovides relevant callbacks for whether the API calls were successful or not with associated biometric confidence.\nNote: If less than the required enrollments exist for a user, enrollment methods delete them and re-enroll.\n\n#### Encapsulated Voice Enrollment\n\nCreate three voice enrollments user with given userId(begins with 'usr_'), contentLanguage('en-US','es-ES' etc.), and a given phrase such as \"Never forget tomorrow is a new day\".\n\n```java\nmyVoiceIt.encapsulatedVoiceEnrollment(Activity, \"USER_ID_HERE\", \"CONTENT_LANGUAGE_HERE\", \"PHRASE_HERE\", new JsonHttpResponseHandler() {...});\n```\n\n#### Encapsulated Voice Verification\n\nVerify user with given userId(begins with 'usr_'), contentLanguage('en-US','es-ES' etc.), and a given phrase such as \"Never forget tomorrow is a new day\".\n\n```java\nmyVoiceIt.encapsulatedVoiceVerification(Activity, \"USER_ID_HERE\", \"CONTENT_LANGUAGE_HERE\", \"PHRASE_HERE\", new JsonHttpResponseHandler() {...});\n```\n\n#### Encapsulated Voice Identification\n\nIdentify user from given groupId(begins with 'grp_'), contentLanguage('en-US','es-ES' etc.), and a given phrase such as \"Never forget tomorrow is a new day\".\n\n```java\nmyVoiceIt.encapsulatedVoiceIdentification(Activity, \"GROUP_ID_HERE\", \"CONTENT_LANGUAGE_HERE\", \"PHRASE_HERE\", new JsonHttpResponseHandler() {...});\n```\n\n#### Encapsulated Face Enrollment\n\nCreate three face enrollments for user with given userId(begins with 'usr_').\n\n```java\nmyVoiceIt.encapsulatedFaceEnrollment(Activity, \"USER_ID_HERE\", new JsonHttpResponseHandler() {...});\n```\n\n#### Encapsulated Face Verification\n\nVerify user with given userId(begins with 'usr_'), and a boolean to enable liveness detection.\n\n```java\nmyVoiceIt.encapsulatedFaceVerification(Activity, \"USER_ID_HERE\", true, new JsonHttpResponseHandler() {...});\n```\n\nwith optional boolean to disable or enable liveness tutorial: \n\n```\nmyVoiceIt.encapsulatedFaceVerification(Activity, \"USER_ID_HERE\", true, true, new JsonHttpResponseHandler() {...});\n```\n\n#### Encapsulated Face Identification\n\nIdentify user from given groupId(begins with 'grp_'), and a boolean to enable liveness detection.\n\n```java\nmyVoiceIt.encapsulatedFaceIdentification(Activity, \"GROUP_ID_HERE\", true, new JsonHttpResponseHandler() {...});\n```\n\n#### Encapsulated Video Enrollment\n\nCreate three video enrollments for user with given userId(begins with 'usr_') and contentLanguage('en-US','es-ES', etc.), and a given phrase such as \"my face and voice identify me\".\n\n```java\nmyVoiceIt.encapsulatedVideoEnrollment(Activity, \"USER_ID_HERE\", \"CONTENT_LANGUAGE_HERE\", \"PHRASE_HERE\", new JsonHttpResponseHandler() {...});\n```\n\n#### Encapsulated Video Verification\n\nVerify user with given userId(begins with 'usr_'), contentLanguage('en-US','es-ES' etc.), a given phrase such as \"my face and voice identify me\", and a boolean to enable liveness detection.\n\n```java\nmyVoiceIt.encapsulatedVideoVerification(Activity, \"USER_ID_HERE\", \"CONTENT_LANGUAGE_HERE\", \"PHRASE_HERE\", true, new JsonHttpResponseHandler() {...});\n```\nWith optional boolean to enable or disable liveness tutorial: \n\n```java\nmyVoiceIt.encapsulatedVideoVerification(Activity, \"USER_ID_HERE\", \"CONTENT_LANGUAGE_HERE\", \"PHRASE_HERE\", true, true, new JsonHttpResponseHandler() {...});\n```\n\n#### Encapsulated Video Identification\n\nIdentify user from given groupId(begins with 'grp_'), contentLanguage('en-US','es-ES' etc.), a given phrase such as \"my face and voice identify me\", and a boolean to enable liveness detection.\n\n```java\nmyVoiceIt.encapsulatedVideoIdentification(Activity, \"GROUP_ID_HERE\", \"CONTENT_LANGUAGE_HERE\", \"PHRASE_HERE\", true, new JsonHttpResponseHandler() {...});\n```\n\n### Setting The Theme\n\nTo set the theme, please initialize the voiceit Module with the Color integer as the third argument: \n\n```\nmyVoiceIt = new VoiceItAPI2(\"API_KEY\",\"API_TOK\", Color.parseColor(\"HEX_COLOR_VALUE_HERE\"));\n```\nPlease make sure that the color is a valid Hex value. The parseColor method throws an IllegalArgumentException so it is recommended to wrap the initialize method in try-catch blocks\n\n### Other API Calls\n\nPlease refer to https://api.voiceit.io/?java# for information about all API calls\n\n*Remember to add \"new JsonHttpResponseHandler() {...}\" as the last argument*\n\nFor example, you can check whether a user exists for the given userId(begins with 'usr_')\n```java\nmyVoiceIt.checkUserExists(\"USER_ID_HERE\", new JsonHttpResponseHandler() {...});\n```\n\n## Strings and Prompts\n\nAll strings and prompts utilized in the encapsulated views can be overwitten by adding strings with the same names as found in:\n```\n/voiceit2/src/main/res/values/strings.xml\n```\nto the strings.xml file in your app.\n\n## Author\n\nVoiceIt Technologies, \u003ca href=\"mailto:support@voiceit.io\" target=\"_blank\"\u003esupport@voiceit.io\u003c/a\u003e\n\n## License\n\nVoiceItApi2AndroidSDK is available under the MIT license. See the LICENSE file for more info.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoiceittech%2Fvoiceit2-androidsdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoiceittech%2Fvoiceit2-androidsdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoiceittech%2Fvoiceit2-androidsdk/lists"}