make_ug.scm 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. ;;; ;;;
  3. ;;; Language Technologies Institute ;;;
  4. ;;; Carnegie Mellon University ;;;
  5. ;;; Copyright (c) 2013 ;;;
  6. ;;; All Rights Reserved. ;;;
  7. ;;; ;;;
  8. ;;; Permission is hereby granted, free of charge, to use and distribute ;;;
  9. ;;; this software and its documentation without restriction, including ;;;
  10. ;;; without limitation the rights to use, copy, modify, merge, publish, ;;;
  11. ;;; distribute, sublicense, and/or sell copies of this work, and to ;;;
  12. ;;; permit persons to whom this work is furnished to do so, subject to ;;;
  13. ;;; the following conditions: ;;;
  14. ;;; 1. The code must retain the above copyright notice, this list of ;;;
  15. ;;; conditions and the following disclaimer. ;;;
  16. ;;; 2. Any modifications must be clearly marked as such. ;;;
  17. ;;; 3. Original authors' names are not deleted. ;;;
  18. ;;; 4. The authors' names are not used to endorse or promote products ;;;
  19. ;;; derived from this software without specific prior written ;;;
  20. ;;; permission. ;;;
  21. ;;; ;;;
  22. ;;; CARNEGIE MELLON UNIVERSITY AND THE CONTRIBUTORS TO THIS WORK ;;;
  23. ;;; DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ;;;
  24. ;;; ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT ;;;
  25. ;;; SHALL CARNEGIE MELLON UNIVERSITY NOR THE CONTRIBUTORS BE LIABLE ;;;
  26. ;;; FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ;;;
  27. ;;; WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN ;;;
  28. ;;; AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ;;;
  29. ;;; ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF ;;;
  30. ;;; THIS SOFTWARE. ;;;
  31. ;;; ;;;
  32. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  33. ;;; Author: Alan W Black (awb@cs.cmu.edu) ;;;
  34. ;;; Date: May 2013 ;;;
  35. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  36. ;;; ;;;
  37. ;;; Various functions for universal grapheme voice support ;;;
  38. ;;; ;;;
  39. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  40. (define (xtol name alist ofd)
  41. "((xtol name alist ofd)
  42. Assoc list to ordered struction mapping a symbol to n other symbols."
  43. (format ofd "const int num_%s = %d;\n" name (length alist))
  44. (format ofd "const char * const %s[%d][5] =\n{\n" name (+ 1 (length alist)))
  45. (mapcar
  46. (lambda (x)
  47. (format t ">%l<\n" (car x))
  48. (format ofd " {\"%s\", " (car x))
  49. (set! xx (car (cadr x)))
  50. (if (consp xx)
  51. (format ofd "\"%l\", " (car xx))
  52. (format ofd "NULL, "))
  53. (if (consp (cdr xx))
  54. (format ofd "\"%l\", " (cadr xx))
  55. (format ofd "NULL, "))
  56. (if (consp (cddr xx))
  57. (format ofd "\"%l\", " (cadr (cdr xx)))
  58. (format ofd "NULL, "))
  59. (format ofd "NULL},\n")
  60. )
  61. alist)
  62. (format ofd " { NULL, NULL, NULL, NULL }\n};\n\n")
  63. )
  64. (define (doit)
  65. (set! ofd (fopen "grapheme_unitran_tables.c" "w"))
  66. (format ofd "/* Copyright 2008-2012, University of Illinois at Urbana-Champaign */\n")
  67. (format ofd "/* distributed under the Apache License, Version (2.0) */\n")
  68. (format ofd "/* http://www.apache.org/licenses/LICENSE-2.0 */\n")
  69. (format ofd "/* Original table developed by Richard Sproat and Kyoung-young Kim */\n")
  70. (format ofd "/* Ported for Festvox by Gopala Anumachipalli gopalakr@cs.cmu.edu Sep 2012 */\n")
  71. (format ofd "/* Then converted to C for CMU Flite (cmuflite.org) */\n")
  72. (format ofd "#include <flite.h>\n")
  73. (xtol "unicode_sampa_mapping" unicode_sampa_mapping ofd)
  74. ; (xtol "grapheme_unicode_mapping" grapheme_unicode_mapping ofd)
  75. (fclose ofd))
  76. (provide 'ug)