{"id":49373456,"url":"https://github.com/voiceittech/voiceit3-android-sdk","last_synced_at":"2026-06-06T00:01:58.792Z","repository":{"id":123977836,"uuid":"120362672","full_name":"voiceittech/voiceit3-android-sdk","owner":"voiceittech","description":"VoiceIt API 3.0 Android SDK","archived":false,"fork":false,"pushed_at":"2026-05-02T01:46:34.000Z","size":39452,"stargazers_count":5,"open_issues_count":1,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-05-02T03:29:15.266Z","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,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-02-05T21:13:42.000Z","updated_at":"2026-05-02T01:46:36.000Z","dependencies_parsed_at":"2024-02-20T04:36:34.427Z","dependency_job_id":null,"html_url":"https://github.com/voiceittech/voiceit3-android-sdk","commit_stats":null,"previous_names":["voiceittech/voiceit3-androidsdk","voiceittech/voiceit3-android-sdk"],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/voiceittech/voiceit3-android-sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voiceittech%2Fvoiceit3-android-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voiceittech%2Fvoiceit3-android-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voiceittech%2Fvoiceit3-android-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voiceittech%2Fvoiceit3-android-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/voiceittech","download_url":"https://codeload.github.com/voiceittech/voiceit3-android-sdk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voiceittech%2Fvoiceit3-android-sdk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33964367,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-05T02:00:06.157Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"2026-04-28T01:04:29.936Z","updated_at":"2026-06-06T00:01:58.787Z","avatar_url":"https://github.com/voiceittech.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://raw.githubusercontent.com/voiceittech/voiceit3-android-sdk/main/Graphics/android.png\" width=\"100%\" style=\"width:100%\"\u003e\n\n[![Build](https://github.com/voiceittech/voiceit3-android-sdk/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/voiceittech/voiceit3-android-sdk/actions/workflows/test.yml)\n[![Dependabot](https://img.shields.io/github/issues-pr/voiceittech/voiceit3-android-sdk/dependencies?label=dependabot\u0026logo=dependabot\u0026color=025e8c)](https://github.com/voiceittech/voiceit3-android-sdk/pulls?q=is%3Apr+label%3Adependencies)\n[![Version](https://img.shields.io/badge/version-3.1.0-blue)](https://github.com/voiceittech/voiceit3-android-sdk)\n[![License: MIT](https://img.shields.io/badge/license-MIT-green)](https://github.com/voiceittech/voiceit3-android-sdk/blob/main/LICENSE)\n[![Platform](https://img.shields.io/badge/platform-Android%2021%2B-brightgreen)](https://github.com/voiceittech/voiceit3-android-sdk)\n[![VoiceIt API](https://img.shields.io/badge/VoiceIt-API%203.0-blue)](https://voiceit.io)\n\nA fully comprehensive SDK that gives you access to VoiceIt's API 3.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* [API Calls](#api-calls)\n  * [Initialization](#initialization)\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 Video Enrollment](#encapsulated-video-enrollment)\n      * [Encapsulated Video Verification](#encapsulated-video-verification)\n  * [Other API Calls](#other-api-calls)\n* [Theme](#setting-the-theme)\n\n\n## UI Screenshots\n\n\u003cdiv\u003e\n  \u003cimg width=\"250px\" src=\"https://raw.githubusercontent.com/voiceittech/voiceit3-android-sdk/main/Graphics/demo_top.png?v=6\" style=\"display: inline-block !important;\"/\u003e\u003cimg width=\"250px\" src=\"https://raw.githubusercontent.com/voiceittech/voiceit3-android-sdk/main/Graphics/demo_bottom.png?v=6\" style=\"display: inline-block !important;\"/\u003e\u003cimg width=\"250px\" src=\"https://raw.githubusercontent.com/voiceittech/voiceit3-android-sdk/main/Graphics/voiceEnrollment.png?v=6\" style=\"display: inline-block !important;\"/\u003e\u003cimg width=\"250px\" src=\"https://raw.githubusercontent.com/voiceittech/voiceit3-android-sdk/main/Graphics/faceEnrollment.png?v=6\" style=\"display: inline-block !important;\"/\u003e\u003cimg width=\"250px\" src=\"https://raw.githubusercontent.com/voiceittech/voiceit3-android-sdk/main/Graphics/videoEnrollment.png?v=6\" style=\"display: inline-block !important;\"/\u003e\n\u003c/div\u003e\n\n## Getting Started\n\nSign up at [voiceit.io/pricing](https://voiceit.io/pricing) to get your API Key and Token, then log in to the [Dashboard](https://dashboard.voiceit.io) to manage your account.\n\n\u003cimg src=\"https://raw.githubusercontent.com/voiceittech/voiceit3-android-sdk/main/Graphics/getcredentials.png\" alt=\"API Key and Token\" width=\"400px\" /\u003e\n\n## Requirements\n\n#### Audio Recording\nThe SDK records audio at the following specifications for optimal biometric accuracy:\n\n| Setting | Value |\n|---------|-------|\n| Sample Rate | 48 kHz |\n| Bit Depth | 16-bit equivalent |\n| Channels | Mono |\n| Format | AAC 256 kbps (M4A) |\n\n\u003e **Note:** Recordings below 16 kHz sample rate or below 64 kbps bitrate will significantly degrade biometric accuracy and may result in failed enrollments or verifications.\n\n#### SDK Version\nThe minimum Android SDK version (API level) should be set to 21 in your build.gradle file:\n```\nminSdkVersion: 21\n```\n\n#### Voiceprint Phrases\n\nMake sure you review your Voiceprint Phrases by navigating to \u003ca href=\"https://dashboard.voiceit.io/phraseManagement\" 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\n### Via GitHub Packages (recommended)\n\nAdd the GitHub Packages Maven repository to your project's `settings.gradle`:\n\n```groovy\ndependencyResolutionManagement {\n    repositories {\n        maven {\n            url = uri(\"https://maven.pkg.github.com/voiceittech/voiceit3-android-sdk\")\n            credentials {\n                username = System.getenv(\"GITHUB_ACTOR\") ?: project.findProperty(\"gpr.user\") ?: \"\"\n                password = System.getenv(\"GITHUB_TOKEN\") ?: project.findProperty(\"gpr.key\") ?: \"\"\n            }\n        }\n    }\n}\n```\n\nThen add the dependency to your app's `build.gradle`:\n\n```groovy\ndependencies {\n    implementation 'com.voiceittech:voiceit3-android-sdk:3.0.0'\n}\n```\n\n### Via source\n\n1. Clone the repo: `git clone https://github.com/voiceittech/voiceit3-android-sdk.git`\n2. In Android Studio, go to **File \u003e New \u003e Import Module**\n3. Select the cloned repo directory and include only the `voiceit3` module\n\n## API Calls\n\n### Initialization\n\nFirst import *VoiceItAPI3* 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.voiceit3.VoiceItAPI3;\n\npublic class MainActivity extends AppCompatActivity {\n\n    private VoiceItAPI3 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 VoiceItAPI3(\"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### 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 face enrollments for user with given userId(begins with 'usr_') and contentLanguage('en-US','es-ES' etc.).\n\n```java\nmyVoiceIt.encapsulatedFaceEnrollment(Activity, \"USER_ID_HERE\", \"CONTENT_LANGUAGE_HERE\", new JsonHttpResponseHandler() {...});\n```\n\n#### Encapsulated Face Verification\n\nVerify user with given userId(begins with 'usr_') and contentLanguage('en-US','es-ES' etc.).\n\n```java\nmyVoiceIt.encapsulatedFaceVerification(Activity, \"USER_ID_HERE\", \"CONTENT_LANGUAGE_HERE\", 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\".\n\n```java\nmyVoiceIt.encapsulatedVideoVerification(Activity, \"USER_ID_HERE\", \"CONTENT_LANGUAGE_HERE\", \"PHRASE_HERE\", 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```java\nmyVoiceIt = new VoiceItAPI3(\"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://voiceit.io/documentation 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 overwritten by adding strings with the same names as found in:\n```\n/voiceit3/src/main/res/values/strings.xml\n```\nto the strings.xml file in your app.\n\n\n## Support\n\nIf you find this SDK useful, please consider giving it a star on GitHub — it helps others discover the project!\n\n[![GitHub stars](https://img.shields.io/github/stars/voiceittech/voiceit3-android-sdk?style=social)](https://github.com/voiceittech/voiceit3-android-sdk/stargazers)\n\n## License\n\nvoiceit3-android-sdk is available under the MIT license. See the LICENSE file for more info.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoiceittech%2Fvoiceit3-android-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoiceittech%2Fvoiceit3-android-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoiceittech%2Fvoiceit3-android-sdk/lists"}