Ubuntu Linux에서 선택한 텍스트를 소리내어 읽기

4247 단어 a11ylinux
나는 교정을 잘 못한다. 나는 내가 쓴 것을 몇 번이나 읽어도 대부분의 실수를 간과합니다.

이 때문에 내 Macbook에서 alt + esc 키를 누르면 선택한 텍스트를 큰 소리로 읽을 수 있다는 사실을 알게 된 것은 신의 선물이었습니다. 나는 교정하면서 놓친 많은 실수를 듣습니다. 제 글쓰기 워크플로에서 없어서는 안 될 부분이 되었습니다.

불행히도 내 Linux 컴퓨터에는 이 기능이 내장되어 있지 않으므로 함께 해킹해야 했습니다.

선택한 텍스트 읽기 스크립트 빌드



Apple의 alt + esc TTS(텍스트 음성 변환) 기능을 사용한 경험이 있는 경우 이 기능이 그다지 좋지 않을 것이라고 말하면서 시작하겠습니다. 그러나 우리는 충분히 좋은 것을 얻을 수 있습니다.

작동 방식은 다음과 같습니다.
  • ctrl + esc 키를 누르면 실행되는 스크립트를 생성합니다.
  • 스크립트는 텍스트 음성 변환 응용 프로그램이 이미 실행 중인지 확인합니다. 그렇다면 연설을 중지하는 프로세스를 종료합니다.
  • 음성 텍스트 변환이 실행되고 있지 않으면 텍스트를 클립보드에 복사하고 텍스트 음성 변환 응용 프로그램으로 파이프합니다.

  • 먼저 몇 가지 패키지를 설치해야 합니다.
  • xclipxsel는 X11 데스크탑(Linux의 표준 윈도우 시스템)용 클립보드를 관리하는 데 도움이 됩니다.
  • espeak 텍스트를 소리내어 읽습니다.

  • 터미널에서 다음 명령을 실행합니다.

    sudo apt update
    sudo apt install xclip xsel espeak
    


    그런 다음 홈 폴더에 user-scripts 디렉터리를 만든 다음 해당 디렉터리로 이동합니다.

    mkdir ~/user-scripts
    cd ~/user-scripts
    


    다음으로 read-selected-text 파일을 만든 다음 실행 파일로 설정합니다.

    touch read-selected-text
    chmod +x read-selected-text
    


    이제 nano read-select-text 를 실행하여 Nano로 파일을 열고 다음을 파일에 붙여넣습니다.

    #! /bin/bash
    
    espeak_pid=$(pidof espeak)
    
    # espeak argument reference:
    # -a for volume. Max 200
    # -p for pitch.  0 to 99, default is 50
    # -v for voice
    
    if [ -z "$espeak_pid"]
    then
        xclip -out -selection primary | xclip -in -selection clipboard
        xsel --clipboard | tr "\n" " " | espeak -a 200 -p 60 -v english-us
    else 
        kill $espeak_pid
    fi
    

    ctrl + o를 눌러 저장한 다음 ctrl + x를 눌러 Nano를 종료합니다.

    키보드 단락에 스크립트 바인딩



    설정 앱을 열고 왼쪽 사이드바에서 키보드로 이동합니다. 이 화면 하단에서 바로 가기 사용자 지정을 클릭한 다음 맨 아래로 스크롤하여 바로 가기 사용자 지정을 클릭합니다. 바로가기 추가 버튼을 클릭합니다.

    이름 필드에서 바로 가기 제목을 "선택한 텍스트 읽기"로 지정합니다.

    명령 필드에 이전에 만든 스크립트의 전체 경로를 입력합니다(내 스크립트의 경로는 /home/tyler/user-scripts/read-selected-text). pwd 디렉토리에서 user-scripts 명령을 실행하여 전체 경로를 찾을 수 있습니다.

    바로 가기를 설정합니다. 나는 내 것을 ctrl + esc 로 설정했지만 원하는대로 설정할 수 있습니다.

    마지막으로 창 상단에 있는 추가 버튼을 클릭합니다.

    이제 스크린 리더를 테스트할 수 있습니다. 컴퓨터에서 일부 텍스트를 선택하고 바로 가기를 실행합니다. 로봇 음성이 텍스트를 다시 읽어주는 소리가 들릴 것입니다.

    잠재적인 문제



    X11은 수십 년 동안 Linux의 기본 창 시스템이었지만 배포판에서는 Wayland를 채택하기 시작했습니다. Wayland 기반 Ubuntu 시스템에서 이 스크립트를 테스트하지 않았지만 작동하지 않을 수 있습니다.

    또한 두 개의 espeak 인스턴스가 동시에 실행되는 경우 이 스크립트에서 문제가 발생할 것이라고 생각합니다.

    Stack ExchangeUbuntu's documentation 에서 찾은 정보를 사용하여 시작하고 실행할 수 있도록 이 스크립트를 최소 작업 스크립트로 만들었습니다. 개선 사항이 있는 경우(또는 내 지침에서 잘못된 부분을 발견한 경우) 아래 의견에 적어주세요!

    좋은 웹페이지 즐겨찾기