여러 줄에 걸친 아랍어 구절 감지


12

Quran 앱을 빌드해야하며 사용자가 터치 할 때 구절을 읽고 싶습니다. 내가 직면하고있는 문제는 일부 구절이 1.5 줄로 확대되거나 (빨간 강조 표시된 빨간색 구절) 1/4 줄 (강조 표시된 녹색 구절)에 맞을 수 있다는 것입니다. 따라서 각 구절을 텍스트보기 또는 다른보기에 추가하면 효과가없는 것 같습니다.

두 번째 이미지에서 빨간색과 같은 구절을 감지하고 싶습니다. 구절을위한 오디오 파일이 있으므로 텍스트를 음성으로 변환 할 필요가 없습니다.


1
페이지가 이미지 데이터로 제공되거나 유니 코드 텍스트로 렌더링됩니까?

Text to Speech ..하지만 연구 결과를 알려주십시오.

각 구절 이미지를 이미지 뷰에 동적으로 추가하려고 시도했지만 문제는 이미지 뷰가 1.5 줄로 확장되지 않는다는 것입니다. 때때로 어떤 구절에는 한 줄 반이 필요할 수 있습니다. 이것을 극복하기 위해 몇 가지 제안이 필요합니다.

1
두 줄을 사용하고 오버 헤드가 있습니까?

1
한 줄 반 줄은 화면의 너비를 차지하고 다음 줄의 반은 줄어든다는 것을 의미합니까?

답변:


9

간단한 템플릿 매칭만으로도 매우 간단하게 해결할 수 있습니다. 어떻게 설정했는지 정확히 알지 못하므로 알고리즘을 일반적으로 설명하고 그림을 사용합니다.

  • 구절의 숫자는 구절의 시작과 끝을 쉽게 감지하는 데 사용할 수있는 뚜렷한 경계를 가지고 있습니다. 따라서 해당 패턴에 대한 이진화 된 템플릿을 만들어 저장하십시오. 이 같은:

    여기에 이미지 설명을 입력하십시오

  • 화면의 줄 수는 미리 알려져 있고 (페이지 서식을 지정하는 경우) 각 구절의 높이가 일정하기 때문에 구절 중심선의 Y 좌표가 화면에 있어야하는 위치 (알고리즘)를 쉽게 추론 할 수 있습니다. . 이것은 아이디어를 보여줍니다 :

    여기에 이미지 설명을 입력하십시오

  • 사용자가 구절을 터치하면 XY 좌표를 얻고 Y 좌표를 가장 가까운 구절 중심에 스냅합니다.

  • 그런 다음 X 좌표로 시작하여 해당 행에서 간단한 템플릿 일치 (상관 상관)를 수행하십시오. 정방향 (왼쪽)의 첫 번째 일치 (교차 상관)는 구절의 끝 점이됩니다. 반대 방향 (오른쪽)에 일치하는 항목이 없으면 한 구절 위로 이동하고 (중심선의 Y 좌표를 알고 있기 때문에 할 수 있음) 반복하십시오. 왼쪽 끝에서 첫 번째 경기는 구절의 시작점이됩니다. 마찬가지로 선에 일치하는 항목이 없으면 한 줄 아래로 이동하고 반복하십시오.

    여기 아이디어에 대한 간단한 설명이 있습니다. 노란색 상자는 사용자가 구절을 터치하는 곳입니다. 그런 다음 템플릿과 상호 상관을 수행하면 파란색 원이 일치합니다.

    여기에 이미지 설명을 입력하십시오

    나는 당신이 그것을보고 관심이 있다면 이 답변에 템플릿 일치를 사용 합니다.

  • 구절의 시작 지점을 결정한 후에는 아랍어 텍스트 인식기를 사용하여 해당 경계 안의 구절 번호를 추론하고 해당 오디오 파일을 재생하십시오.


더 간단한 해결책 :

더 간단한 해결책은, 이것을 원하지 않는다면 구절 시작점의 XY 좌표를 저장하는 것입니다 (간단하게 유지하고 중심점을 사용하십시오) 일단 사용자 입력의 좌표를 얻으면 다시 스냅 할 수 있습니다 그것을 중심선으로 옮긴 다음 뒤로 걸어서 구절이 시작되는 곳을 봅니다. 이것은 더 빠르다는 이점이 있습니다.

의견에서 비슷한 아이디어를 거부하는 것처럼 보였으므로 이것을 첫 번째 해결책으로 제시하지 않았습니다. 결국, 그것은 계산 작업 (템플릿 일치-템플릿을 저장해야 함) 또는 메모리 (저장 좌표)를 사용하는 제약 조건에 달려 있습니다.

내가 당신이라면 아마 이것과 함께 갈 것입니다. 그러나 이미지 처리 솔루션은 재미있을 수 있습니다.


요다 또는 다른 사람, 당신은이 문제를 조금 더 잘 설명 할 수 있습니까? 고마워요!

@xmenus 원에 고정되면 (독특한 테두리와 일치하는 패턴으로 수행) 내부의 내용을 식별하기 위해 아랍어 텍스트 / 숫자 인식 라이브러리를 사용해야합니다. 나는 아랍어를 모르므로 아무것도 추천 할 수 없습니다. 당신은 OP를 요청할 수 있습니다 ...
Lorem Ipsum

@xmenus 아랍어에 대한 도움이 필요하면 나에게 물어볼 수 있지만 단순히 아랍어 숫자를 감지하기를 원하는지 여부에 따라 원을 사용하는 것과 동일한 템플릿 일치를 할 수 있습니다.
Spacey
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.