naoqi의 sayToFile을 사용하여 말하는 내용을 wav로 저장하는 Choregraphe 상자

naoqi 참조 에 있던 sayToFile 메소드를 사용해, Pepper가 말하는 내용을 파일 보존하는 박스를 만들었습니다

만드는 방법


  • Choregraphe의 흐름 다이어그램을 마우스 오른쪽 버튼으로 클릭 한 다음 새 상자에서 Python 상자를 만듭니다
  • 상자의 onStart를 마우스 오른쪽 버튼으로 클릭하여 유형을 String으로 변경
  • 상자를 마우스 오른쪽 단추로 클릭하고 상자 스크립트 편집을 클릭합니다.
  • 다음 sayToFile 상자의 스크립트를 복사하여 붙여 넣기

  • 박스 파라미터에 관하여



    아래 절차에 따라 상자의 매개 변수를 편집하여 파일 이름을 지정할 수 있습니다.
    1. 새로 만든 Python 상자를 마우스 오른쪽 버튼으로 클릭하여 상자 편집
    2. 변수의 오른쪽에 있는 +를 클릭하여 변수 추가
    3. 이름에 file name을 입력하고 유형을 문자열로 변경


    sayToFile 상자 스크립트


    from datetime import datetime
    
    class MyClass(GeneratedClass):
        def __init__(self):
            GeneratedClass.__init__(self)
    
            self.tts = ALProxy('ALTextToSpeech')
            self.ttsStop = ALProxy('ALTextToSpeech', True)
    
        def onLoad(self):
            #put initialization code here
            pass
    
        def onUnload(self):
            #put clean-up code here
            pass
    
        def onInput_onStart(self, p):
            #self.onStopped() #activate the output of the box
            nowstr = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
            filename = ''
    
            if self.getParameter('file name') != '':
                filename = self.getParameter('file name') + nowstr + '.wav'
            else:
                filename = nowstr + '.wav'
    
            # self.logger.debug(filename)
    
            filePath = '/home/nao/recordings/' + filename
            sayText = str(p)
    
            try:
                self.tts.sayToFile(sayText, filePath)
            except RuntimeError:
                self.logger.debug("Runtime Error")
            pass
    
        def onInput_onStop(self):
    
            self.onUnload() #it is recommended to reuse the clean-up as the box is stopped
            self.onStopped() #activate the output of the box
    

    사용 예



    다음은 간단한 사용 예입니다.
    아래 이미지와 같이 text edit 상자와 내가 만든 상자를 연결하면 쉽게 사용할 수 있습니다.


    저장된 파일 꺼내기



    Choregraphe에서 파일을 검색 할 수 있습니다.
    1. 메뉴에서 연결 -> 고급 -> 파일 전송 ... 선택
    2. 로봇의 패스워드가 요구되므로 입력
    3. 목록에서 recordings를 두 번 클릭
    4. 일람에 날짜와 시간이 적힌 wav 파일이 있기 때문에 그것을 다운로드

    좋은 웹페이지 즐겨찾기