Openface 설치 하기

To install openface, follow the below instructions:

  • sudo apt-get install libblas-dev liblapack-dev libatlas-base-dev gfortran
    pip install scipy
  • git clone https://github.com/cmusatyalab/openface.git
  • cd openface
  • sudo pip install -r requirements.txt
  • sudo python setup.py install

To download the trained model:

  • sh models/get-models.sh

(추가)Standard BLAS는 느리다는 글이…OpenBLAS 깔아야 되는데, 이건 apt-get 저장소에 없어서 소스로 빌드해야 하는듯

관련자료 : http://blog.nguyenvq.com/blog/2014/11/10/optimized-r-and-python-standard-blas-vs-atlas-vs-openblas-vs-mkl/

Advertisements

Amazon Alexa 분석

알렉사는 아마존이 판매하고 있는 에코(Echo)라는 스피커에 들어있는 음석인식 솔루션이다. 구글 보이스, 애플 시리와 비슷하게 음성 인식을 통한 명령을 인식하고 그 에 맞는 응답을 제공한다

알렉사는 서드파티 업체가 사용할 수 있도록 SDK가 공개 되었다. 여기에서는 서드 파티가 알렉사를 어떻게 사용할 수 있는지 살펴본다.

현재 아마존은 총 2가지의 알렉사 기능을 제공한다. Alexa Skills Kit(ASK) 와 Alexa Voice Service(AVS)가 그것이다.

Alexa Skills Kit

알렉사에게 새로운 음성 능력을 부여할 수 있게 해주는 기능이다.

askarchitecture.png

  1. 사용자가 명령을 내리면
  2. 알렉사가 사용자의 요청을 분석해서 구조화한 후 서비스로 전송한다.
  3. 서비스는 요청을 처리해서 텍스트 또는 그래피컬한 응답을 한다.
  4. 알렉사가 리턴받은 텍스트를 음성으로 변환한 후 장치로 스트림 한다.
  5. 장치는 응답받은 알렉사의 보이스를 플레이한다

위 구조에서 2,3,4 번은 Device 가 아닌 Server에서 처리하는 것으로 보인다.

예를 들어 보면, 사용자가 아래 음성을 말했다면

“Alexa, ask Greeter to say hello”

  1. Alexa는 에코를 깨우는 단어이다. 이 단어에서 부터 대화가 시작된다.
  2. ask … to 는 알렉사가 지원하는 표현법중 하나이다. 알렉사에서 지원되는 표현법은 여기를 참조
  3. Greeter 가 사용자가 원하는 능력을 선택하는 식별단어이다
  4. Say Hello 는 실제 요청,질문,명령에 해당되고 서비스에게 세부적인 의미로 매핑되서 서비스에게 전달된다

Alexa Skills Kit Voice Design Handbook 문서에 있는 예제를 살펴보면,

  1. Asks a question and the Alexa skill gives a response.
    • User: “Alexa, ask Astrology Daily for the horoscope for Leo.”
    • Astrology Daily: Today’s outlook for Leo: An opportunity presents itself at work.
  2. Tells the Alexa skill to do something, and the skill provides confirmation that action has been taken.
    • User: “Alexa, tell Score Keeper to give Tom five points.”
    • Score Keeper: Five points for Tom.

예제에서 보듯이 Alexa Skills Kit을 활용하려면 아래와 같은 구조를 가져야 한다.

  1. Alexa로 시작해야 한다
  2. 대상을 지정한다(위 예제에서는 Astrology, Score Keeper)
  3. 명령을 지정한다(위 예제에서는 ask to, tell to)
  4. 세부정보를 지정한다. 이 부분은 사용자가 작성한 서비스에 의존적이다(위 예제에서는 horoscope for leo, five tom five point)

세부 정보도 의미를 파악하기 위해서는 더 의미가 분리되어야 한다.

이때 사용할 문장 정보를 정의해줘야 한다


GetHoroscope what is the horoscope for {Sign} 

GetHoroscope what will the horoscope for {Sign} be on {Date} 

GetHoroscope get me my horoscope GetHoroscope {Sign}

 ... 

GetLuckyNumbers what are my lucky numbers 

GetLuckyNumbers tell me my lucky numbers 

... 

MatchSign do {FirstSign} and {SecondSign} get along 

MatchSign what is the relationship between {FirstSign} and {SecondSign}

위 정보를 토대로 문장을 분석해서 Alexa는 사용자 음성을 분석해서 서비스에게 JSON 포맷으로 세분화된 정보를 전송한다

{
intents : [
    intent : {
      GetHoroscope,
      slots : [
        {
          name : Sign,
          type : LIST_OF_SIGNS
        },
        {
          name : Date,
          type : AMAZON.DATE
        }
      ]
    },
    {
      intent: GetLuckyNumbers
    }
  ]
}

 

Alexa Voice Service

알렉사 보이스 서비스는 서드 파티가 만든 새로운 디바이스에 알렉사의 능력을 제공하기 위한 서비스이다. 이렇게 되면 Amazon Echo와 동일한 능력을 가지게 된다.

예를 들어, 당신이 새로운 스마트 워치를 만들었다고 하자. 당신의 사용자가 스마트 워치에 대고 “what’s the weather” 또는 “how’s traffic”이라고 물어봤다면, AVS는 알렉사의 능력을 이용해서 날씨를 검색해서 사용자가 장치를 통해서 들을수 있는 오디오 정보를 리턴한다.

당신은 AVS 와 ASK를 동시에 사용해서 더 복잡한 인터렉션을 구현할 수 있다.  스마트 워치 예제를 다시 살펴보면, 당신은 ASK(Alexa Skills Kit)을 이용해서 알렉사를 학습시킨 후에 아래 명령을 인식하게 할 수 있다.

"Start my run"
"Stop my run"
"What's my heart rate"
"How far have I run"
"How long was my run"
"Compare this run to my personal best"

avs_getting_started_1 (1).png

위 그림은 AVS를 이용해서 새로운 장치가 Alexa 서비스를 이용하는 구조를 보여준다. 위 그림에서 보듯이 장치는 알렉사에게 Audio 데이터 그 자체를 전송한다. Alexa는 결과값으로 Audio 데이터를 다시 리턴한다.

위 구조에서 Audio Capture 규칙은 Your Device가 알아서 정해야 한다. 아마존은 Push-to-talk 를 추천한다. 만약 voice trigger를 사용하고 싶다면 아마존에 연락하라고 적혀 있다.

Push-to-talk devices and applications are currently permitted by the Alexa Voice Service. If you are interested in building far-field voice recognition or using a spoken word to trigger activation of the Alexa Voice Service in your device or application, pleasecontact Amazon.

 

결론

  • 알렉사 서비스는 명령/응답 구조를 가지고 있다
    • 알렉사가 먼저 말을 걸지는 않는다
  • 알렉사 서비스의 99%는 서버에서 수행된다. Device가 하는거라곤 음성 녹음 및 재생 뿐이다
  • 알렉사에 새로운 명령을 추가하려면 서버쪽에 처리 서비스를 구현해주어야 한다
  • ASK 랑 AVS를 같이 쓰면 Alexa로 시작 안해도 되고, 식별 단어도 따로 없어도 되는 것 같다.
  • 서드 파티 제품에 알렉사를 넣는다고 하면 알렉사의 여자 목소리를 바꿀수 없다

 

 

레티나 맥북 프로 써멀 구리스 교체 사례

이 작업을 하게된 계기는 rMBP의 높은 Core온도 때문이다.
처음에는 내 레티나만 온도가 높은 줄 알았는데,
찾아보니 다들 코어 온도 60~70도 이상인 상태에서 작동되는듯 하다
그런데 아래 자료처럼 온도를 낮춘 사례를 찾았다
http://www.ifixit.com/Guide/Reapplying+Thermal+Paste+to+the+CPU+and+GPU/9587/1
무러 10도 이상을 낮추다니! 바로 이거야! 하고 써멀 구리스에 대해 열심히 찾아봤다.
위 사례에서 쓰인 Arctic Silver 5는 한국에 정식 수입되지는 않고, 소소하게 업자들이 수인하는것 같은데
가격이 애미없다;;;
그래서 다른 제품을 더 찾아보던중 Tuniq TX-4가 Arctic Silver 5보다 좋다는 자료를 찾아서 TX-4로 구입했다
레티나 맥북 프로를 뜯은후에, 방열판을 뜯는것은 전혀 어렵지 않았다 (물론 별 드라이버가 있어야함)
깨끗이 기존 서멀 구리스를 제거하고 ( 알콜로 하라는데 없어서 물티슈로 했다..조금 찝찝…)
TX-4를 바르는데, 이거 꽤나 점성이 높아서 고르게 안발라진다. 넘흐 어렵다.
여튼 계속 실패하다가 어찌어찌 발라서 테스트를 했다.
실험은 MacOS에서 패러럴즈를 통해서 Sleeping Dogs의 벤치마크를 실행한 후에, Temperature Gauge라는 어플을 통해서
최대 온도값을 측정했다.
우선 서멀 구리스를 교체하기 전 데이터 값이다.
CPU Core1 Proximity : 70
Core1 : 99
Core2 : 103
Core3 : 104
Core4 : 99
CPU Core PECI : 103

아래는 TX-4로 교체한 후 값이다.
CPU Core1 Proximity : 71
Core1 : 100
Core2 : 103
Core3 : 104
Core4 : 98
CPU Core PECI : 103

전혀 변화가 없거나, 오히려 약간 나빠진 것 같다! ㅠ_ㅠ

원인이 뭘까?
1. 기존 서멀 구리스가 깨끗이 제거되지 않았다.
2. TX-4를 너무 두껍고 그지같이 발랐다.
3. 레티나 맥북 프로 서멀 구리스는 이미 최적화 되어 있어서 더이상 개선이 안된다.

이왕 이렇게 된거, 써멀 구리스 딴거 사다가 더 실험을 해야 하나, 포기해야 하나 고믽중이다.
흑흑…코어 온도를 100도 넘기는거 너무 짱난다…

스타트업 관련 글

스타트업이 개인에게 줄 수 있는 것들
스타트업 구성원이 가져야 할 다섯가지
벤처기업 vs. 중소기업

스타트업 기업의 매력이라면 역시나 극히 힘들긴 하지만 비지니스가 성공한다면 큰 보상이 따른다는 것이 아닐까?

이런 이유로 부푼 꿈을 가지고 젊은 패기로 스타트업에 뛰어든다.

하지만, 스타트업 기업에 있는 사람들 또는 스타트업 전문가들은 다른 관점을 이야기 한다.

비지니스의 성공이 목표이긴 하지만, 그 목표를 위해 가는길이 즐겁지 않다면 목표를 이루기가 힘들다는 이야기다.

스타트업의 동기부여가 돈이 라면 쉽게 지치는 요인이 된다. 돈 보다더 더 높은 가치가 존재해야 된다는 것이다.

즐겁게 일하지 않으면 스타트업의 성공이라는 지루한 레이스틑 버티기 힘들것이다.

위에서 소개한 블로그를 운영중인 http://www.frograms.com 는 그 답을 알고 있는듯..멋지다~

MYO

LeapMotion을 만든 회사에서 만든 제품인데, 이 회사 앞으로 인터페이스 분야에서 애플 같은 역활을 할지도..
이미 있는 시장을 공략하는 회사가 아니라 새로운 제품을 만들어가는 회사가 된다는 것은 분명 멋진일이다..
포드가 이런 말을 했다고 한다.
“만약 우리가 고객에게 무엇이 필요합니까? 라고 물으면 사람들은 자동차가 필요하다고 하지 않고 더 빠른 말이라고 말한다”
사람들이 원하는 제품을 만드는게 정답은 아닐듯