- THINKLET向けCameraX 向けのマイクプラグインのソースコード,導入手順,及びサンプルアプリのソースコードを記載しています.
- 本プロジェクトのマイクプラグインは,THINKLETのみ動作しますが,この実装を参考に,独自のマイク実装をCameraXに入れ込むことも可能です.
- 例えば,音声認識と音声合成したデータを与えることで,理論上ノイズが一切入らない人の発話のみを録音する機能を実現できます.
実装の詳細については,サンプルを確認ください.
- GitHub Packages経由でライブラリを取得できるよう,こちらを参考に個人用アクセス トークンを発行してください.
- アクセストークンは,クレデンシャルですので,Git管理しないように,
local.properties
などに保存を推奨します.TOKEN=<github token> USERNAME=<github username>
- GitHub Packagesを参照する設定を追加します.ここでは手順2でアクセストークンは,
local.properties
に記載済みであるとしています.dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() + maven { + name = "GitHubPackages" + setUrl("https://maven.pkg.github.com/FairyDevicesRD/thinklet.app.sdk") + content { + includeGroup("ai.fd.thinklet") + } + credentials { + val properties = java.util.Properties() + properties.load(file("local.properties").inputStream()) + username = properties.getProperty("USERNAME") ?: "" + password = properties.getProperty("TOKEN") ?: "" + } + } }
- また,GradleのVersionによっては,Projectの
build.gradle
,build.gradle.kts
に記載する場合もあります.
dependencies {
+ val cameraX = "1.4.0"
+ // AndroidX標準のCameraXを追加
+ implementation("androidx.camera:camera-core:$cameraX")
+ implementation("androidx.camera:camera-camera2:$cameraX")
+ implementation("androidx.camera:camera-lifecycle:$cameraX")
+ implementation("androidx.camera:camera-view:$cameraX") {
+ // AndroidX標準のCamera-Videoを削除.
+ exclude("androidx.camera", "camera-video")
+ }
+ val thinkletCameraX = "1.4.0"
+ // 代わりに,THINKLETカスタムのCamera-Videoを追加
+ implementation("ai.fd.thinklet:camerax-camera-video:$thinkletCameraX")
+ val thinkletSdk = "0.1.6"
+ val thinkletCameraXMic = "0.0.1"
+ // THINKLET向けのマイクを追加
+ implementation("ai.fd.thinklet:camerax-mic-core:$thinkletCameraXMic")
+ implementation("ai.fd.thinklet:sdk-audio:$thinkletSdk")
+ // 5chを使用する場合
+ implementation("ai.fd.thinklet:camerax-mic-multi-channel:$thinkletCameraXMic")
+ // THINKLET AppSDKの 音声処理機能(※1) を使用する場合
+ implementation("ai.fd.thinklet:camerax-mic-xfe:$thinkletCameraXMic")
}
Important
上記手順を行うと,標準の camera-video
の実装を置き換えます.
androidx.camera:camera-video
への依存が含まれる camera-view
などを使用する際には camera-video
を依存から削除する必要があります.(上記参考)
プロジェクトレベルで対応するには,Samples を確認ください.
Note
(※1) THINKLET AppSDKの 音声処理機能については,こちら を確認ください.
- 利用するには,すでにCameraXのRecorderを利用している場合は,ライブラリの導入と,
Recorder.Builder
にsetThinkletMic
を追加します.- (例)5chマイクで録音する
val recorder = Recorder.Builder() .setExecutor(recorderExecutor) .setQualitySelector(QualitySelector.from(Quality.FHD)) + .setThinkletMic(ThinkletMics.FiveCh) .build()
- 例えば,スタートガイド を参考にCameraXを用いた録画アプリを作成し,
Recorder.Builder # setThinkletMic
を追加します.