2014-10-06 5 views

답변

5

쉘 스크립트 say 및 -v 옵션을 사용하여 목록을 가져올 수 있습니다.

do shell script "say -v?" 

-v 음성 --voice = 음성 음성이 사용되도록 지정한다. 기본값은 시스템 환경 설정에서 선택한 음성입니다. 시스템에 설치된 음성 목록을 얻으려면 '?'를 지정하십시오. 음성 이름으로.

Deranged   en_US # I need to go on a really long vacation. 
Fred    en_US # I sure like being inside this fancy computer 
Good News   en_US # Congratulations you just won the sweepstakes and you don't have to pay income tax again. 
Hysterical   en_US # Please stop tickling me! 
Jorge    es_ES # Hola, me llamo Jorge y soy una voz española. 

가 나는 이름을 분리하는 분리 및 정크

set the_name to do shell script "say -v? | awk -F\"\\ \\ \" '{print $1}'" 
로 이름 뒤에 공백을 사용합니다 단지 이름을 당겨하려면 : 내 시스템에서

내가 좋아하는 긴 목록을 얻을 것이다

그래서 여기에 말 명령의 결과를 awk로 파이프합니다.

-F fs 옵션 은 입력 필드 구분자를 정규 표현식 fs로 정의합니다. 여기가 공백을 사용하여 이름을 정크에서 분리합니다.

이름과 정크 사이에 전체 공간이 아니라 이중 공간 만 있으면됩니다. 나는 또한 각 백 슬래시로 이스케이프해야합니다.

우리는 Applescript에 있기 때문에 실제로 이스케이프를 이스케이프 처리하여 쉘에 전달해야합니다. 물론 여분의 따옴표를 벗어나십시오.

Deranged 
Fred 
Good News 
Hysterical 
Jorge 
을 :

\"\\ \\ \" 

AWK는 나에게 준다 필드 1 ($ 1)

에서 모든 필드를 출력한다 {$ 1를 인쇄}

관련 문제