Python在Mac上的文本到语音发音丹麦语单词错误



我有下面的程序,它正在尝试发音一行丹麦语文本。我不明白它为什么发音不对。听起来应该像"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)

您需要传入unicode对象,而不是UTF-8字节串:

ve.startSpeakingString_(line.decode('utf8'))

您可以将line值定义为Unicode文字,而不是解码:

line = u"på så må få på"

最新更新