Blame view

tools/extras/install_phonetisaurus.sh 3.04 KB
8dcb6dfcb   Yannick Estève   first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
  #!/bin/bash
  set -u
  set -e
  
  
  # Make sure we are in the tools/ directory.
  if [ `basename $PWD` == extras ]; then
    cd ..
  fi
  
  ! [ `basename $PWD` == tools ] && \
    echo "You must call this script from the tools/ directory" && exit 1;
  
  # Install python-devel package if not already available
  # first, makes sure distutils.sysconfig usable
  # We are not currently compiling the bindings by default, but it seems
  # worth it to keep this section as we do have them and they will
  # probably be used.
  if ! $(python -c "import distutils.sysconfig" &> /dev/null); then
      echo "$0: WARNING: python library distutils.sysconfig not usable, this is necessary to figure out the path of Python.h." >&2
      echo "Proceeding with installation." >&2
  else
    # get include path for this python version
    INCLUDE_PY=$(python -c "from distutils import sysconfig as s; print(s.get_python_inc())")
    if [ ! -f "${INCLUDE_PY}/Python.h" ]; then
        echo "$0 : ERROR: python-devel/python-dev not installed" >&2
        if which yum >&/dev/null; then
          # this is a red-hat system
          echo "$0: we recommend that you run (our best guess):"
          echo " sudo yum install python-devel"
        fi
        if which apt-get >&/dev/null; then
          # this is a debian system
          echo "$0: we recommend that you run (our best guess):"
          echo " sudo apt-get install python-dev"
        fi
        exit 1
    fi
  fi
  
  
  if [ ! -d ./phonetisaurus-g2p ] ; then
    git clone https://github.com/AdolfVonKleist/Phonetisaurus.git phonetisaurus-g2p ||
    {
      echo  >&2 "$0: Warning: git clone operation ended unsuccessfully"
      echo  >&2 "  I will assume this is because you don't have https support"
      echo  >&2 "  compiled into your git "
      git clone http://github.com/AdolfVonKleist/Phonetisaurus.git phonetisaurus-g2p
  
      if [ $? -ne 0 ]; then
        echo  >&2 "$0: Error git clone operation ended unsuccessfully"
        echo  >&2 "  Clone the github repository (https://github.com/AdolfVonKleist/Phonetisaurus.git)"
        echo  >&2 "  manually make and install in accordance with directions."
      fi
    }
  fi
  
  (
      export TOOLS=${PWD}
      cd phonetisaurus-g2p
      #checkout the current kaldi tag
      git checkout -b kaldi kaldi
      ./configure --with-openfst-includes=${TOOLS}/openfst/include --with-openfst-libs=${TOOLS}/openfst/lib
      make
  )
  
  (
    set +u
    [ ! -z "${PHONETISAURUS}" ] && \
      echo >&2 "PHONETISAURUS variable is aleady defined. Undefining..." && \
      unset PHONETISAURUS
  
    [ -f ./env.sh ] && . ./env.sh
  
    [ ! -z "${PHONETISAURUS}" ] && \
      echo >&2 "PHONETISAURUS config is already in env.sh" && exit
  
    wd=`pwd`
    wd=`readlink -f $wd || pwd`
  
    echo "export PHONETISAURUS=\"$wd/phonetisaurus-g2p\""
    echo "export PATH=\"\$PATH:\${PHONETISAURUS}:\${PHONETISAURUS}/src/scripts\""
  ) >> env.sh
  
  echo >&2 "Installation of PHONETISAURUS finished successfully"
  echo >&2 "Please source tools/env.sh in your path.sh to enable it"
  echo >&2 "NOTE: only the C++ binaries are compiled by default."
  echo >&2 " see the README.md file for details on installing the"
  echo >&2 " optional python bindings and supplementary scripts."