카톡으로 가끔 퍼나르는 얘기는 출처없는 유언비어/인신공격성 성격의 얘기가 대부분이어서 믿지 않는편인데, 얼마전에도 믿기 어려운 그림이 퍼날러지고 있어서 그 출처를 살펴보았다.


FAKEFAKE

관련 뉴스를 검색해보니 http://forum.koreairanianchurch.net/bbs/board.php?bo_table=news_arab&wr_id=1436 등등이 나오고, 출처로 http://www.westernjournalism.com/barbaric-muslims-sew-mouth-eye-shut-girl-professed-jesus-savior/ 이렇게 되어있다. 2014년 4월에 나온 이야기이다.

그래서 이번에는 영어로 검색해보니 검색 결과는 좀 더 많이 나왔으나, 이 사진이 FAKE라고 주장하는 사이트도 다음과 같이 있었다. http://www.muslimsarenotterrorists.com/2014/04/reality-behind-girl-with-sewn-mouth-and-eye-saudi-arabia.html 사이트 이름에도 알 수 있듯이 이 사이트는 무슬림이 테러리스트가 아니라고 말하고 있다.

잘 읽어보면 사진의 원 출처는 일본 사이트이며, 일본 사이트로 들어가서 그림을 찾아보면 원본 사진이 나오고 사진은 2008년에 찍은 사진이라는 것이다. (위 링크로 가면 설명 나옵니다. 혐오 사이트라서 링크걸지 않았습니다.) 직접 사이트에 들어가서 살펴보니 원본 사진은 정말로 2008년도에 나왔고, 일본인이였다. 사우디아라비아 소녀라는 말은 거짓말인것이다.

게임 끝.

카톡에 가끔 올라오는 출처 불명의 얘기는 직접 확인하기 전에는 퍼뜨리지도 말고 믿지도 말자.

※추가: 사실 이 그림보다 더 ㄷㄷ한 사실은, 단순히 카톡의 우리말 한글 내용뿐만 아니라, 이 조작된 사실이 올라간 상당수의 외국 사이트들이다. 다행스럽게도(?) 위 사실을 퍼나른 국내 메이져 사이트들은 거의 안보였고 게시판에 올라간 수준들의 글이었으나, 해외 사이트는 꽤 무차별적으로 올라가 있었다. (상당수의 글은 2014년. 몇몇 글은 2012년에도 올라옴)

사이트 몇개를 들어가보니 덧글에 이 글은 가짜라는 덧글이 달린 곳도 종종 보였고, 그 덧글에는 다음과 같은 추가적인 내용의 사이트도 일본인이라고 말하고 있다고 알려주었다. http://motleynews.net/2012/09/26/bagelheads-japans-hot-trend-of-injecting-saline-in-forehead-for-that-bagel-look/ (혐짤 주의. 2012년 글임에 유의)

단, 이런 류의 글들은 비교적 트위터나 facebook에 올라가면 꽤 빠른 시간에 검증되어서 사라져버리는 것인지.. 트위터나 facebook에서는 찾아보려 해도 쉽게 찾지 못하였다. 또 다른 한편으로는 이슬람에 관련되어 좋지 않은 얘기들이 상당수 올라오고 있다는 사실도 눈에 뜨인다.

앞으로는 이슬람에 관련되어서 이상한 소문이 들린다면 반드시 원문을 추적해보리라 생각해본다.

by dumpcookie 2014. 9. 23. 22:37

JLayer가 상당히 느린 관계로 libmpg123을 적용해보기로 하였습니다.

MAD에는 저수준의 API가 있어서 ringdroid에 입맞에 맞춰서 적용하는게 손쉬웠지만 libmpg123의 경우에는 저수준의 API함수를 사용하는 예제가 없어서 소스를 훝어보던 차에 *framebyframe*류의 저수준 API함수가 비교적 최근(2009년)에 추가되어 있더군요. 이를 이용하여 libmpg123을 이용한 decoder를 만들어서 넣었고 잘 작둥함을 확인하였습니다. 관련 내용을 검색해봐도 저수준 API 함수를 사용하는 예제는 찾을 수 없었습니다만, 사용방법은 간단하였고 어렵지 않게 적용할 수 있었습니다.

소스는 https://github.com/wkpark/ringdroid master 브렌치에 올려두었습니다~

libmpg123을 사용하는 Mpg123Decoder.c JNI wrapper는 https://github.com/thasmin/android-mp3decoders를 참고하였고, 골격은 MAD에서 사용하던 방식과 거의 같고, readNextFrame() / decodeFrame()등의 저수준 API를 사용하는 부분 등등은 재작성 했습니다.


/* JNI 일부 */ JNIEXPORT float JNICALL Java_com_ringdroid_soundfile_Mpg123Decoder_readNextFrame (JNIEnv *env, jclass c, jlong handle) { MP3File *mp3 = (MP3File*)handle; int err = mpg123_framebyframe_next(mp3->handle); char buf[256]; sprintf(buf, "readNextFrame() err = %d", err); __android_log_write(ANDROID_LOG_INFO, "mp3decode-jni", buf); return err; } JNIEXPORT float JNICALL Java_com_ringdroid_soundfile_Mpg123Decoder_decodeFrame (JNIEnv *env, jclass c, jlong handle) { MP3File *mp3 = (MP3File*)handle; size_t bytes = 0; unsigned char *dummy; int err = mpg123_framebyframe_decode(mp3->handle, NULL, &dummy, &bytes); char buf[256]; sprintf(buf, "decodeFrame() bytes = %d", bytes); __android_log_write(ANDROID_LOG_INFO, "mp3decode-jni", buf); if (err != MPG123_OK) __android_log_write(ANDROID_LOG_INFO, "mp3decode-jni", mpg123_plain_strerror(err)); mp3->leftSamples = bytes / 2; /* buffer는 단지 저장장소일 뿐 실제로 short로 저장되므로 (short *)로 cast해야 하고 실제 데이터 개수는 bytes 수의 1/2 */ mp3->offset = 0; sprintf(buf, "decodeFrame() err = %d", err); __android_log_write(ANDROID_LOG_INFO, "mp3decode-jni", buf); return err != MPG123_OK ? 0 : bytes; } ...

(framebyframe* 저수준 API는 위에서 볼 수 있듯이 매우 간단합니다)

by dumpcookie 2014. 9. 15. 17:44

아직 마땅한 이름은 정하지 못했고, ringdroid에 아주 초 간단 Voice segmentation 기능을 추가하고 개선시킨 반복 듣기용 영어 어학 학습기를 만들어봤습니다.

ringdroid가 워낙 잘 만든 놈이라서, 기능 추가하는 것도 어렵지 않고, 기존에 나와있던 반복 학습기들의 단점 보완을 목표로 해서 개선시키고 있습니다.

장점

1. 예쁘다. :)

2. UI가 쉽고 간단.

단점

1. JLayer가 너무 느리다ㅠ : 너무 느리다면 waveform을 캐싱하는 방법도 고려해야 할 듯.

2. Voice segmentation 개선 필요. : 현재는 silence 경계 판단이 매우 매우 간단한 알고리즘 (최소 noise + rms 체크)

개선점

1. Voice Recognition을 사용한 자동 자막 기능. (반자동 기능으로?)

2. 배터리 절약 모드(?) - 색상을 어둡게 하거나 몇가지 선택 가능한 테마로

3. 이어폰으로 간단한 제어가능하도록

4. 음악 파일 디렉토리 지정 가능하도록

5. OGG 지원 (일단 읽기만이라도)


Screenshot_2014-09-11-20-00-31.png 표시 중

by dumpcookie 2014. 9. 12. 17:12