입력 오디오 샘플을 준비하기 위한 링 버퍼와 일부 유틸리티 함수를 정의합니다.
링 버퍼를 유지함 입력 오디오 데이터입니다. 클라이언트는 `load` 메서드를 통해 입력 오디오 데이터를 피드하고 `getTensorBuffer` 메서드를 통해 집계된 오디오 샘플입니다.
이 클래스는 부동 소수점 수 (AudioFormat.ENCODING_PCM_16BIT
) 또는 Shorts 동영상 (AudioFormat.ENCODING_PCM_FLOAT
)에서만 입력 오디오를 처리할 수 있습니다. 내부적으로 모든 오디오를 변환하고 저장합니다.
샘플이 될 수 있습니다.
Kotlin의 일반적인 사용법
val audioData = AudioData.create(format, modelInputLength) audioData.load(newData)
AudioRecord
의 또 다른 사용 샘플
val audioData = AudioData.create(format, modelInputLength) Timer().scheduleAtFixedRate(delay, period) { audioData.load(audioRecord) }
중첩된 클래스
클래스 | AudioData.AudioDataFormat | 수신되는 오디오 샘플의 형식, 즉 오디오 샘플의 샘플링 레이트를 사용할 수 있습니다. |
공개 메서드
정적 AudioData |
create(AudioData.AudioDataFormat 형식, int sampleCounts)
|
정적 AudioData | |
float[] |
getBuffer()
AudioFormat.ENCODING_PCM_FLOAT 에 사용 가능한 모든 오디오 샘플이 있는 부동 배열을 반환합니다. 즉, |
int | |
AudioData.AudioDataFormat | |
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> 공개 정적 AudioData 만들기 (AudioData.AudioDataFormat 형식, int sampleCounts)
크기가 sampleCounts
* format.getNumOfChannels()
인 링 버퍼가 있는 AudioRecord
인스턴스를 만듭니다.
매개변수
형식 | 이 클래스에 로드된 오디오 데이터의 예상 AudioData.AudioDataFormat 입니다. |
---|---|
sampleCounts | 샘플 개수 |
<ph type="x-smartling-placeholder"></ph> 공개 정적 AudioData 만들기 (AudioFormat 형식, int sampleCounts)
크기가 sampleCounts
인 링 버퍼가 있는 AudioData
인스턴스를 만듭니다.*
format.getChannelCount()
입니다.
매개변수
형식 | TFLite 모델에 필요한 AudioFormat 정의
채널 수 및 샘플링 레이트 |
---|---|
sampleCounts | 모델에 입력할 샘플 수 |
<ph type="x-smartling-placeholder"></ph> 공개 float[] 를 통해 개인정보처리방침을 정의할 수 있습니다. getBuffer ()
AudioFormat.ENCODING_PCM_FLOAT
에서 사용 가능한 모든 오디오 샘플을 보유하는 부동 소수점 배열을 반환합니다. 즉, 값이 [-1, 1] 범위에 있는 값입니다.
<ph type="x-smartling-placeholder"></ph> 공개 정수 를 통해 개인정보처리방침을 정의할 수 있습니다. getBufferLength ()
<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 의 입력 오디오 샘플입니다. 대상
다중 채널 입력이면 배열이 인터리브 처리됩니다.
|
---|