TensorAudio

공개 클래스 TensorAudio

입력 오디오 샘플을 준비하기 위한 링 버퍼와 일부 유틸리티 함수를 정의합니다.

입력 오디오 데이터를 보관하기 위해 링 버퍼를 유지합니다. 클라이언트는 `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);
 
의 일반적인 사용법

AudioRecord

   val tensor = TensorAudio.create(format, modelInputLength)
   Timer().scheduleAtFixedRate(delay, period) {
     tensor.load(audioRecord)
     interpreter.run(tensor.getTensorBuffer(), outputBuffer)
   }
 
사용한 또 다른 샘플 사용법

중첩 클래스

수업 TensorAudio.TensorAudioFormat 들어오는 오디오 샘플의 형식, 즉 채널 수와 샘플 속도를 설명하는 몇 가지 상수를 래핑합니다.

공개 방법

정적 TensorAudio
생성 (AudioFormat 형식, int SampleCounts)
크기가 sampleCounts * format.getChannelCount() 인 링 버퍼를 사용하여 TensorAudio 인스턴스를 생성합니다.
정적 TensorAudio
생성 ( TensorAudio.TensorAudioFormat 형식, int SampleCounts)
크기가 sampleCounts * format.getChannels() 인 링 버퍼를 사용하여 AudioRecord 인스턴스를 생성합니다.
TensorAudio.TensorAudioFormat
텐서버퍼
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 입니다.
샘플 개수 모델에 공급할 샘플 수

공개 TensorAudio.TensorAudioFormat getFormat ()

공개 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 에 오디오 샘플을 입력합니다. 다중 채널 입력의 경우 배열이 인터리브됩니다.