입력 오디오 샘플을 준비하기 위한 링 버퍼와 일부 유틸리티 함수를 정의합니다.
링 버퍼를 유지함 입력 오디오 데이터입니다. 클라이언트는 `load` 메서드를 통해 입력 오디오 데이터를 피드하고 `getTensorBuffer` 메서드를 통해 집계된 오디오 샘플입니다.
이 클래스는 부동 소수점 수 (AudioFormat.ENCODING_PCM_16BIT) 또는 Shorts 동영상 (AudioFormat.ENCODING_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 |
create(AudioFormat 형식, int sampleCounts)
|
| 정적 TensorAudio |
create(TensorAudio.TensorAudioFormat 형식, int sampleCounts)
|
| TensorAudio.TensorAudioFormat | |
| TensorBuffer |
getTensorBuffer()
AudioFormat.ENCODING_PCM_FLOAT에 사용 가능한 모든 오디오 샘플을 보유하는 부동 소수점 TensorBuffer를 반환합니다. 즉, |
| void |
load(short[] src)
입력 오디오 샘플
src를 ENCODING_PCM_FLOAT로 변환한 다음 링에 저장합니다.
버퍼입니다. |
| void |
load(float[] src, int offsetInFloat, int sizeInFloat)
입력 오디오 샘플
src를 링 버퍼에 저장합니다. |
| void |
load(short[] src, int offsetInShort, int sizeInShort)
입력 오디오 샘플
src를 ENCODING_PCM_FLOAT로 변환한 다음 링에 저장합니다.
버퍼입니다. |
| int |
load(AudioRecord 레코드)
비차단 방식으로
AudioRecord에서 최신 데이터를 로드합니다. |
| void |
load(float[] src)
입력 오디오 샘플
src를 링 버퍼에 저장합니다. |
상속된 메서드
공개 메서드
<ph type="x-smartling-placeholder"></ph> 공개 정적 TensorAudio 만들기 (AudioFormat 형식, int sampleCounts)
크기가 sampleCounts인 링 버퍼가 있는 TensorAudio 인스턴스를 만듭니다.*
format.getChannelCount()입니다.
매개변수
| 형식 | TFLite 모델에 필요한 AudioFormat 정의
채널 수 및 샘플링 레이트 |
|---|---|
| sampleCounts | 모델에 입력할 샘플 수 |
<ph type="x-smartling-placeholder"></ph> 공개 정적 TensorAudio 만들기 (TensorAudio.TensorAudioFormat 형식, int sampleCounts)
크기가 sampleCounts * format.getChannels()인 링 버퍼가 있는 AudioRecord 인스턴스를 만듭니다.
매개변수
| 형식 | 이 클래스에 로드된 오디오 데이터의 예상 TensorAudio.TensorAudioFormat입니다. |
|---|---|
| sampleCounts | 모델에 입력할 샘플 수 |
<ph type="x-smartling-placeholder"></ph> 공개 TensorBuffer getTensorBuffer ()
AudioFormat.ENCODING_PCM_FLOAT에 사용 가능한 모든 오디오 샘플이 있는 부동 소수점 TensorBuffer를 반환합니다. 즉, 값이 [-1, 1] 범위에 있습니다.
<ph type="x-smartling-placeholder"></ph> 공개 무효 를 통해 개인정보처리방침을 정의할 수 있습니다. 로드 (short[] src)
입력 오디오 샘플 src를 ENCODING_PCM_FLOAT로 변환한 다음 링에 저장합니다.
버퍼입니다.
매개변수
| src | AudioFormat.ENCODING_PCM_16BIT의 입력 오디오 샘플입니다. 대상
다중 채널 입력이면 배열이 인터리브 처리됩니다.
|
|---|
<ph type="x-smartling-placeholder"></ph> 공개 무효 를 통해 개인정보처리방침을 정의할 수 있습니다. 로드 (float[] src, int offsetInFloat, int sizeInFloat)
입력 오디오 샘플 src를 링 버퍼에 저장합니다.
매개변수
| src | AudioFormat.ENCODING_PCM_FLOAT의 입력 오디오 샘플입니다. 대상
다중 채널 입력이면 배열이 인터리브 처리됩니다. |
|---|---|
| offsetInFloat | src 배열의 시작 위치 |
| sizeInFloat | 복사할 부동 소수점 값의 수 |
생성 값
| IllegalArgumentException | 호환되지 않는 오디오 형식 또는 잘못된 입력 크기 |
|---|
<ph type="x-smartling-placeholder"></ph> 공개 무효 를 통해 개인정보처리방침을 정의할 수 있습니다. 로드 (short[] src, int offsetInShort, int sizeInShort)
입력 오디오 샘플 src를 ENCODING_PCM_FLOAT로 변환한 다음 링에 저장합니다.
버퍼입니다.
매개변수
| src | AudioFormat.ENCODING_PCM_16BIT의 입력 오디오 샘플입니다. 대상
다중 채널 입력이면 배열이 인터리브 처리됩니다. |
|---|---|
| offsetInShort | src 배열의 시작 위치 |
| sizeInShort | 복사할 단축값의 수 |
생성 값
| IllegalArgumentException | 소스 배열을 복사할 수 없는 경우 |
|---|
<ph type="x-smartling-placeholder"></ph> 공개 정수 를 통해 개인정보처리방침을 정의할 수 있습니다. 로드 (AudioRecord 레코드)
비차단 방식으로 AudioRecord에서 최신 데이터를 로드합니다. 단
ENCODING_PCM_16BIT 및 ENCODING_PCM_FLOAT를 지원합니다.
매개변수
| record | AudioRecord의 인스턴스 |
|---|
반환 값
- 크기가
channelCount * sampleCount인 캡처된 오디오 값의 수 만약 AudioRecord에 새 데이터가 없거나 오류가 발생한 경우 이 메서드는 0을 반환합니다.
생성 값
| IllegalArgumentException | 지원되지 않는 오디오 인코딩 형식 |
|---|---|
| IllegalStateException | AudioRecord에서 읽기가 실패할 경우 |
<ph type="x-smartling-placeholder"></ph> 공개 무효 를 통해 개인정보처리방침을 정의할 수 있습니다. 로드 (float[] src)
입력 오디오 샘플 src를 링 버퍼에 저장합니다.
매개변수
| src | AudioFormat.ENCODING_PCM_FLOAT의 입력 오디오 샘플입니다. 대상
다중 채널 입력이면 배열이 인터리브 처리됩니다.
|
|---|