반응형


먼저 네이버api로 데이터를 받아서 바로 콜백으로 적어주면 될 줄 알았는데

api에서 제공해주는 데이터는 mp3로밖에 출력이 안되는걸 발견

mp3는 암축되어있기에 바로 사용하지 못하고 디코딩 하는 과정이 필요함


...


일단 출력이 정말 제대로 되는지를 먼저 테스트하기로 하고

컴퓨터에서 수동으로 wav로 변환하고 raw에 넣고 그 파일로 음성을 출력 해 보기로




(이전 코드를 정확히 복원하지 못해서 이런 형태로...)

(callback.audioAvailable()에 write함)




...



사운드가 나오고 확실히 뭔가의 단어를 말하고는 있는데

괴상한 사운드가 나온다.


일단 하나씩 문제를 해결하기 위해

테스트에 사용한 음성 파일부터 다시 살펴보았다.




16bit 24000Hz mono인데




16000hz로 초기화를 하고 있었음


낮은 음정으로 재생되는 문제 해결





생각해보니 wav파일을 그대로 사용하고 있었음


파일의 헤더부분을 스킵하고 출력함


재생 초기에 탓 하고 이상한 소리가 들리는 문제 해결




마지막으로 큰 문제는 음성이 중간중간 끊어지는 문제가 발생

ㅌ'ㅔ'ㅅ'ㅡ'ㅌ'ㅡ 같은 느낌으로 음이 끊겨서 들림


다행히 스택오버 플로우에 같은 현상에 대한 답변이 있었고

24000hz이하면 *2 mono면 *2로 건너 띄면서 파일을 읽어야만 했다.



음성 재생중에 툭툭 끊기는 문제 해결





일단 출력 부분은 이걸로 형태를 다 잡았다.







반응형

+ Recent posts