Project/자작·수리

안드로원 구글 음성 검색 사용하기 ( 문제 수정판 )

★の別 2010. 7. 5. 03:20

안드로원 현재의 V10T 버젼에서는
표준 API의 구현 문제로 구글 음성검색이 안되고 있습니다.
이부분을 임시적으로 해결해 보았습니다.

`루팅`이 필요하니 루팅에 대해 아시는 유저분만 진행해 주십시오.

★★ 음성입력 16000Hz 강제 활성화로 음성 검색이 가능해지는 대신 다른 8000Hz 요구 어플이 문제가 생길 수도 있습니다. 참고해 주세요.★★
★★기존에 올린 16000_libaudio.so 파일에는 8000 요구 프로그램이 안돌아가는 문제가 있어서, 수정하여 재업로드 합니다. ★★
이제 shazam 이나 녹음 동영상 촬영도 됩니다.
 
1. 루팅을 합니다.(adb shell 에서 # 프롬프트를 볼 수 있어야 합니다.)
==> 루팅에 관한것은 다른 분들의 자세한 글을 참고 부탁드립니다.
대략 적자면.. Android SDK 설치해 놓으시고, ADB 드라이버(KH5200에 맞는걸로) 까시고는...
다이얼러 - 3845#*5200 - module test - stability test - enable root - [ eve&adam&&620love! ] 입력
세팅 - 응용프로그램 - 디버그 활성화(이미 활성화 되어 있었다면, 해제 했다가 다시 활성화)

2. 첨부파일을 받아서 적용

>adb pull /system/lib/libaudio.so libaudio.so
이렇게 백업합니다...
>adb push always_libaudio.so /system/lib/libaudio.so
이렇게 해서 폰에 전송해 주세요...
(혹시 read only 에러 뜨면 adb remount 를 한번 해주면 write 가능해집니다.)

3. 폰 리붓

4. 음성 검색 됩니다.

ps: 궁금증 해결...
패치된 파일은 어떻게 만들었는가? 가 궁금하실꺼 같네요.
안드로이드 donut 소스를 보면...
앵간하면 제조사가 implement 하라고 하고는 임시 코드로
if (samplingrate != 8000) 식으로 대충 때워놓은 부분이 있습니다.
어짜피 제조사에서 편집해서 여러가지 sampling rate를 지원할테니 대충 그렇게 해놨겠지요..
그 부분을 LG에서는 안 바꾸고 내놓은거지요 ;;;
참고로 LG 사이트에서 받은 코드에는 근데 그 부분이 없더군요 -ㅇ-;; 미공개 부분인가 봅니다.
(비슷한 부분이 있지만 소스가 다릅니다. libaudiofringe.so 파일입니다.)
여튼 그 so 파일을 디버거로 위치 찾고 hex로 찾아서 16000으로 바꿔 놨습니다 ㅡㅡ;

ps2: 문제점 해결...
16000 고정 했다가...
THUMB 코드 조금 공부해서
http://recipes.egloos.com/5028421 (이 사이트 참고)
걍 8000 이상으로 바꿔놨습니다 ;;;