nplayer 보이스오버 자막읽기 건의



  • 안녕하십니까?
    nplayer의 버전에 언제부터인가 AVSpeechSynthesizer 기능이 추가가 되어 백그라운드에서 자막을 읽을 수 있게 가능해 졌네요.
    이 기능을 활용함에 있어 몇가지 건의 사항이 있어 건의 드립니다.
    우선 보이스오버 자막 읽기의 기능을 활용하는 방법은 현재 두가지로 나누어 볼 수 있습니다. 이 두가지 방식에 대한 장단점을 먼저 설명해보려 합니다.

    1. 현재 보이스오버가 자막을 읽어주는 방식
      해당 방식은 백그라운드에서 자막을 읽을 수 없다는 문제가 있지만, 아래와 같은 장점이 있습니다.
      우선 별도의 설정을 필요로 하지 않고 보이스오버의 설정만으로 자막을 읽을 수 있습니다. 즉 음성의 속도, 볼륨, 그리고 높이, 구둣점 읽기 유무를 사용자는 보이스오버의 설정을 통해 손쉽게 설정할 수 있고, 따라서 설정된 옵션에 의해 쾌적하고 손쉽게 자막을 읽을 수 있습니다. 사용자에 따라 음성을 듣기 위한 요구사항은 여러가지가 있습니다. 구둣점 여부는 그리 중요하지 않으나, 속도와 볼륨은 사용자들이 본인의 취향에 맞게 설정하여 듣기를 원하는 옵션입니다.
      또한 현재 출력중인 자막의 언어를 사용자가 알고 있을 경우, 언어를 변경하지 않더라도 다른 국가의 언어로 자막 내용을 들을 수 있습니다. 즉 한국어 사용자가 필요에 의해 한국어를 영어 자막으로 보려고 할 경우, 아이폰의 언어를 굳이 바꾸지 않더라도 현재 tts 출력 옵션을 영어로 손쉽게 변경할 수 있는 보이스오버의 옵션이 제공되고 있습니다. (로터 기능 참고)
      또한 오디오 더킹 기능이라고 하여 보이스오버의 음성이 출력될 때에는 배경 오디오음을 살짝 줄여주는 기능이 있습니다. 이를 이용하면 보이스오버 사용자는 tts 볼륨과 오디오 볼륨의 차이로 인해 자막 내용을 듣기 위한 별도의 볼륨 조절 옵션을 설정하지 않아도 되어 매우 간편하게 자막 내용을 들을 수 있습니다.
    2. AVSpeechSynthesizer 을 이용하여 자막을 읽을 경우
      AVSpeechSynthesizer 를 이용하면 백그라운드에서도 자막을 읽을 수 있습니다. 단 현재 nplayer에서 AVSpeechSynthesizer 을 이용할 경우 다음의 문제가 발생합니다.
      우선 음성의 속도, 높이, 구둣점 읽기 옵션 등을 사용자가 원하는 데로 조절할 수가 없습니다. AVSpeechSynthesizer 기능이 포함되는 경우 사용자가 원하는 데로 읽어주기 옵션을 설정할 수 있어야 하지만, 현재 nplayer에서는 이를 조정할 수 있는 옵션이 전혀 없습니다. 또한 현재 nplayer의 경우 자막읽기 동작 방식이 두가지라 매우 혼란스럽습니다. 영상 재생 중엔(백그라운드가 아님) 보이스오버 읽기 방식이 동작하고, 백그라운드에서 영상 재생 시에는 AVSpeechSynthesizer 컴포넌트로 기능이 동작하다보니 통일성이 없습니다. 즉 메인화면에서는 굉장히 빠른 속도로 자막을 읽다가 백그라운드로 빠지게 되면 굉장히 느린 속도로 자막을 읽어주게 되어 굉장히 불편합니다. 이를 읽지 않게 하려면 자막 읽기 기능을 꺼놓고 사용해야 합니다.
      또한 현재로써는 tts 볼륨과 오디오 볼륨이 같은 크기로 조절됩니다. 그렇다보니 자막내용 혹은 대사를 제대로 들을 수 없습니다.
      보이스오버 사용 시에는 오디오 출력 중에 오디오 더킹 기능이 동작하여 tts 출력시에는 배경 소리를 살짝 줄여주어(대략 50% 정도로 생각됩니다.) tts 소리를 듣는 데 방해받지 않도록 하는 옵션이 적용되어 있습니다. 물론 해당 옵션은 켜거나 끌 수 있습니다.
      하지만 AVSpeechSynthesizer 옵션이 동작할 경우 이 기능이 동작되지 않습니다. 물론 이 기능이 AVSpeechSynthesizer 동작 시에도 구현 가능한지는 저도 정확힌 모르겠습니다만, 암튼 오디오와 자막을 동시에 듣다보니 자막을 듣는데 한계가 있습니다. 효과음 때문에 자막을 못듣거나, 자막에 집중하다 보니 효과음을 놓쳐 생동감이 떨어지는 불편함이 있다는 이야기입니다.
      그렇다고 nplayer이 tts 볼륨과 오디오 볼륨을 따로 설정할 수 있는 플레이어가 아니라 더 불편하네요. nplayer의 볼륨조절은 마스터 볼륨만을 조정함으로 오디오 볼륨만을 따로 조절할 수가 없는 게 이럴 땐 참 안타깝습니다.

    이런 장단점으로 인해 저는 기존처럼 보이스오버의 자막읽기 기능이 기존처럼 보이스오버 안에서만 동작되기를 원합니다. 지금도 그 생각엔 변함이 없습니다.
    하지만 AVSpeechSynthesizer 기능이 분명히 유용한 점도 있습니다.
    따라서 AVSpeechSynthesizer 기능 동작 중에 아래 사항이 동작되도록 구현이 되면 굉장히 쾌적한 플레이어가 될 것이라 생각됩니다.
    물론 쉽진 않겠지만 아래 내용을 검토 부탁드립니다.

    1. 자막읽기 켬/ 끔: 자막 읽기의 경우 현재는 보이스오버가 켜져있으면 무조건 보이스오버가 자막을 읽으며, 백그라운드로 빠지면 자막을 AVSpeechSynthesizer 기법이 읽게 되는 것으로 알고 있습니다.
      이 옵션을 켬 또는 끔 기능을 통해 기능을 제어할 수 있어야 합니다.
      만약 자막 읽기 방법이 AVSpeechSynthesizer로 결정되게 되면 백그라운드든 아니든 자막은 AVSpeechSynthesizer 로 읽게 하고, 보이스오버 자막 읽기는 없어도 됩니다.
      해당 기능은 pc의 곰플레이어 또는 kmp 등에서도 자막 tts 읽기 기능으로 비장애인도 사용할 수 있는 기능이니만큼, tts로 자막 읽기 기능 등의 명칭으로 기능명을 변경하면 될 것 같습니다. 즉 보이스오버 켬 끔으로 해당 기능을 제어하기보다는 음성으로 자막읽기 기능의 켬 끔으로 기능 사용 또는 사용 하지 않음 여부를 결정하도록 하는 것이 필요합니다.
    2. tts의 속도, 볼륨을 설정할 수 있어야 합니다. 또한 동영상의 볼륨도 따로 설정이 가능해야 합니다.
      현재 AVSpeechSynthesizer 옵션에서는 AVSpeechSynthesizer 가 동작 중일 때에도 보이스오버처럼 동영상의 소리가 줄어들면서 AVSpeechSynthesizer로 출력되는 tts의 소리가 줄어들 수 있는 방법이 있다면 가장 클리어한 방법입니다. 그 방법이 없다면 tts 볼륨과 오디오 볼륨을 따로 설정할 수 있어야 합니다. 볼륨은 10단계 내에서 설정 가능하도록 하며, 마스터 볼륨의 수치를 넘을 수 없습니다. 즉 tts 볼륨을 10으로 설정했다 하더라도 마스터 볼륨이 4로 설정되어 있다면 마스터 볼륨의 4에서 출력가능한 최대 수치로 tts 소리를 출력할 수 있어야 합니다. 이는 영상의 오디오 볼륨도 마찬가지입니다.
      tts 볼륨 조절의 경우 시각장애인용 독서기 소프트웨어에서 AVSpeechSynthesizer로 tts 출력 시, 출력되는 tts의 볼륨을 조정해주는 옵션이 제공되는 것으로 보아 tts 볼륨을 조정하는 건 그리 문제가 되지 않을 것으로 생각됩니다.
      다만 오디오 볼륨과 tts 볼륨을 함께 조절할 수 있어야 하는게 난제라고 생각되네요. 대부분은 자막 출력 tts 소리가 영상의 오디오소리보다 크게 출력되는 것을 선호하는 사람들이 더 많겠지만 가끔 그 반대의 경우도 있을 수 있으니까요.
    3. 자막을 읽던 도중 동영상이 일시정지되면 tts로 읽던 부분 역시도 함께 일시정지되어야 합니다. 현재는 동영상이 일시정지되어도 버퍼에 전송된 모든 자막을 읽고 정지하는 것으로 보입니다. 또한 특정 구간의 자막을 읽고 있던 도중, 동영상 이동 기능을 통해 다른 구간으로 이동되면 기존 읽던 내용을 중지하고 새로운 구간에서 출력되는 자막을 읽어야 합니다. 현재 되감기 기능을 실행했을 때 이동되는 구간의 자막을 그때그때 읽어주는 기능은 정상적으로 동작하고 있음으로 지금의 상태를 유지하면 되리라 생각됩니다.
    4. 이건 중요도는 낮은데, 자막 읽기 화자 변경이 필요할 수 있으리라 생각됩니다.
      대개 영화 자막은 여러 외국어 자막을 보기 위해, 각 나라 언어로 작성된 자막을 구해 이용하는 것이 보통입니다.
      그러나 공부의 목적으로 또는 다른 목적으로, 한국어 자막이 아닌 또다른 국가의 자막을 이용할 수도 있으리라 생각됩니다.
      현재 nplayer에서 백그라운드로 재생 시에는 ios에서 설정된 언어에 대응되는 화자가 자막의 내용을 읽어주고 있습니다. 이를 좀더 확장해주실 수 있을까 하는 의견을 드려봅니다.
      자막 tts 출력 옵션을 이용하여 본인이 원하는 언어로 변경하여 사용할 수 있도록 하는 기능을 요청드립니다. 정리하자면 다음과 같습니다.
    5. 아이폰 언어가 기본 한국어로 설정되어 있다면 tts 자막 출력 옵션의 기본값은 설정된 언어로 고정됩니다. 즉 언어가 한국어로 설정되어 있다면 tts 자막 출력 옵션의 기본 값도 한국어로 설정되어 있도록 하며, 아이폰 언어가 영어로 설정되어 있다면 읽어주기 언어 옵션도 영어로 설정되어 있으면 됩니다.
    6. 단 기본 언어가 한국어인 상태에서 사용자가 영어 자막을 읽기 원할 때에는 tts 언어 출력 옵션을 '미국 영어' 또는 '영국 영어' 등으로 변경할 수 있으면 좋을 것 같습니다. 즉 아이폰 언어는 한국어로 사용하고, 자막 내용을 좀더 정확히 듣기 위한 추가적인 옵션입니다.
      사실 일반 플레이어에서 너무 많은 기능을 요구한 것 같아 죄송하지만 시각장애인 입장에서는 꼭 필요한 기능들입니다.
      작은 검토라도 해주시면 무척 감사하겠습니다.
      감사합니다.