-
Notifications
You must be signed in to change notification settings - Fork 175
/
test_festival.py
47 lines (40 loc) · 1.73 KB
/
test_festival.py
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
# Copyright 2016 Thomas Schatz, Xuan Nga Cao, Mathieu Bernard
#
# This file is part of phonemizer: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# Phonemizer is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with phonemizer. If not, see <http://www.gnu.org/licenses/>.
"""Test of the phonemizer.Phonemizer class"""
import pytest
from phonemizer import festival, separator
def _test(text):
return festival.phonemize(
text, language='en-us', strip=True,
separator=separator.Separator(' ', '|', '-'))
@pytest.mark.skipif(
'2.1' in festival.festival_version(),
reason='festival-2.1 gives different results than further versions '
'for syllable boundaries')
def test_hello():
assert _test('hello world') == ['hh-ax|l-ow w-er-l-d']
assert _test('hello\nworld') == ['hh-ax|l-ow', 'w-er-l-d']
assert _test('hello\nworld\n') == ['hh-ax|l-ow', 'w-er-l-d']
@pytest.mark.parametrize('text', ['', ' ', ' ', '(', '()', '"', "'"])
def test_bad_input(text):
assert _test(text) == []
def test_quote():
assert _test("here a 'quote") == ['hh-ih-r ax k-w-ow-t']
assert _test('here a "quote') == ['hh-ih-r ax k-w-ow-t']
def test_its():
assert _test("it's") == ['ih-t-s']
assert _test("its") == ['ih-t-s']
assert _test("it s") == ['ih-t eh-s']
assert _test('it "s') == ['ih-t eh-s']