입력 오디오 샘플을 준비하기 위한 링 버퍼와 일부 유틸리티 함수를 정의합니다.
입력 오디오 데이터를 보관하기 위해 링 버퍼를 유지합니다. 클라이언트는 `load` 메소드를 통해 입력 오디오 데이터를 제공하고 `getTensorBuffer` 메소드를 통해 집계된 오디오 샘플에 액세스할 수 있습니다.
이 클래스는 Float( AudioFormat.ENCODING_PCM_16BIT
) 또는 Short( AudioFormat.ENCODING_PCM_FLOAT
)의 입력 오디오만 처리할 수 있습니다. 내부적으로 모든 오디오 샘플을 PCM Float 인코딩으로 변환하고 저장합니다.
Kotlin
val tensor = TensorAudio.create(format, modelInputLength) tensor.load(newData) interpreter.run(tensor.getTensorBuffer(), outputBuffer);의 일반적인 사용법
val tensor = TensorAudio.create(format, modelInputLength) Timer().scheduleAtFixedRate(delay, period) { tensor.load(audioRecord) interpreter.run(tensor.getTensorBuffer(), outputBuffer) }사용한 또 다른 샘플 사용법
중첩 클래스
수업 | TensorAudio.TensorAudioFormat | 들어오는 오디오 샘플의 형식, 즉 채널 수와 샘플 속도를 설명하는 몇 가지 상수를 래핑합니다. |
공개 방법
정적 TensorAudio | 생성 (AudioFormat 형식, int SampleCounts) |
정적 TensorAudio | 생성 ( TensorAudio.TensorAudioFormat 형식, int SampleCounts) |
TensorAudio.TensorAudioFormat | getFormat () |
텐서버퍼 | getTensorBuffer () AudioFormat.ENCODING_PCM_FLOAT 에서 사용 가능한 모든 오디오 샘플을 보유하는 부동 TensorBuffer 반환합니다. 즉 |
무효의 | 로드 (짧은[] src) 입력 오디오 샘플 src ENCODING_PCM_FLOAT로 변환한 다음 이를 링 버퍼에 저장합니다. |
무효의 | 로드 (float[] src, int offsetInFloat, int sizeInFloat) 입력 오디오 샘플 src 링 버퍼에 저장합니다. |
무효의 | 로드 (short[] src, int offsetInShort, int sizeInShort) 입력 오디오 샘플 src ENCODING_PCM_FLOAT로 변환한 다음 이를 링 버퍼에 저장합니다. |
정수 | 로드 (오디오 레코드 레코드) 비차단 방식으로 AudioRecord 에서 최신 데이터를 로드합니다. |
무효의 | 로드 (float[] src) 입력 오디오 샘플 src 링 버퍼에 저장합니다. |
상속된 메서드
공개 방법
공개 정적 TensorAudio 생성 (AudioFormat 형식, int SampleCounts)
크기가 sampleCounts
* format.getChannelCount()
인 링 버퍼를 사용하여 TensorAudio
인스턴스를 생성합니다.
매개변수
체재 | TFLite 모델에 필요한 AudioFormat . 채널 수와 샘플링 속도를 정의합니다. |
---|---|
샘플 개수 | 모델에 공급할 샘플 수 |
공개 정적 TensorAudio 생성 ( TensorAudio.TensorAudioFormat 형식, int SampleCounts)
크기가 sampleCounts
* format.getChannels()
인 링 버퍼를 사용하여 AudioRecord
인스턴스를 생성합니다.
매개변수
체재 | 이 클래스에 로드된 오디오 데이터의 예상 TensorAudio.TensorAudioFormat 입니다. |
---|---|
샘플 개수 | 모델에 공급할 샘플 수 |
공개 TensorBuffer getTensorBuffer ()
AudioFormat.ENCODING_PCM_FLOAT
에서 사용 가능한 모든 오디오 샘플을 보유하는 부동 소수점 TensorBuffer
반환합니다. 즉, 값은 [-1, 1] 범위에 있습니다.
공개 무효 로드 (short[] src)
입력 오디오 샘플 src
ENCODING_PCM_FLOAT로 변환한 다음 이를 링 버퍼에 저장합니다.
매개변수
소스 | AudioFormat.ENCODING_PCM_16BIT 에 오디오 샘플을 입력합니다. 다중 채널 입력의 경우 배열이 인터리브됩니다. |
---|
공개 무효 로드 (float[] src, int offsetInFloat, int sizeInFloat)
입력 오디오 샘플 src
링 버퍼에 저장합니다.
매개변수
소스 | AudioFormat.ENCODING_PCM_FLOAT 에 오디오 샘플을 입력합니다. 다중 채널 입력의 경우 배열이 인터리브됩니다. |
---|---|
오프셋인플로트 | src 배열의 시작 위치 |
크기InFloat | 복사할 부동 소수점 값의 수 |
던지기
IllegalArgumentException | 호환되지 않는 오디오 형식 또는 잘못된 입력 크기 |
---|
공개 무효 로드 (short[] src, int offsetInShort, int sizeInShort)
입력 오디오 샘플 src
ENCODING_PCM_FLOAT로 변환한 다음 이를 링 버퍼에 저장합니다.
매개변수
소스 | AudioFormat.ENCODING_PCM_16BIT 에 오디오 샘플을 입력합니다. 다중 채널 입력의 경우 배열이 인터리브됩니다. |
---|---|
오프셋인쇼트 | src 배열의 시작 위치 |
사이즈인쇼트 | 복사할 짧은 값의 수 |
던지기
IllegalArgumentException | 소스 배열을 복사할 수 없는 경우 |
---|
공개 int 로드 (AudioRecord 레코드)
비차단 방식으로 AudioRecord
에서 최신 데이터를 로드합니다. ENCODING_PCM_16BIT 및 ENCODING_PCM_FLOAT만 지원합니다.
매개변수
기록 | AudioRecord 의 인스턴스 |
---|
보고
- 크기가
channelCount * sampleCount
인 캡처된 오디오 값의 수입니다. AudioRecord에 새 데이터가 없거나 오류가 발생한 경우 이 메서드는 0을 반환합니다.
던지기
IllegalArgumentException | 지원되지 않는 오디오 인코딩 형식의 경우 |
---|---|
IllegalStateException | AudioRecord에서 읽는 데 실패한 경우 |
공개 무효 로드 (float[] src)
입력 오디오 샘플 src
링 버퍼에 저장합니다.
매개변수
소스 | AudioFormat.ENCODING_PCM_FLOAT 에 오디오 샘플을 입력합니다. 다중 채널 입력의 경우 배열이 인터리브됩니다. |
---|