我有以下程序试图发音一行丹麦文本。我无法弄清楚为什么它发错了。它应该听起来像“po so mo fo po”,但听起来并不像那样。这听起来更像是“p n s n m n f n p n”。我正在使用丹麦语“Magnus”,所以它应该知道如何发音。此外,当我使用OSX Voice Over发声时,它听起来是正确的。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from AppKit import NSSpeechSynthesizer
import time
import sys
nssp = NSSpeechSynthesizer
ve = nssp.alloc().init()
from_voice = "com.apple.speech.synthesis.voice.magnus.premium"
line = "på så må få på"
ve.setVoice_(from_voice)
ve.startSpeakingString_(line)
time.sleep(1)
while ve.isSpeaking():
time.sleep(1)
答案 0 :(得分:2)
您需要传入unicode
对象,而不是UTF-8字节字符串:
ve.startSpeakingString_(line.decode('utf8'))
您可以将line
值定义为Unicode文字而不是解码:
line = u"på så må få på"